<?xml version="1.0"?>
<doc>
    <assembly>
        <name>System.Threading</name>
    </assembly>
    <members>
        <member name="T:System.Diagnostics.Contracts.Contract">
            <summary>
            A stub version of .NET 4.0 contracts.
            </summary>
        </member>
        <member name="T:System.Environment2">
            <summary>
            A dummy class that implements GetResourceString. Environment.GetResourceString(string) is an internal
            method in mscorlib.dll.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.IThreadPoolWorkItem">
            <summary>
            An interface similar to the one added in .NET 4.0.
            </summary>
        </member>
        <member name="T:System.Threading.Monitor2">
            <summary>
            .NET 4.0 Monitor class supports new overloads that return a boolean value
            representing whether the lock was successfully taken or not. The return value
            is meant to be accurate even in the presence of thread aborts.
            
            Monitor2 implements these methods as simple wrappers over the .NET 3.5 methods,
            but without making the guarantees related to thread aborts.
            </summary>
        </member>
        <member name="T:System.Collections.Generic.Mscorlib_DictionaryDebugView`2">
            <summary>
            This internal class from mscorlib.dll is used by ConcurrentDictionary.
            </summary>
        </member>
        <member name="T:System.OperationCanceledException2">
            <summary>
            OperationCanceledException is changing from .NET 3.5 to .NET 4.0. To make Parallel Extensions work,
            we include the new version as OperationCanceledException2.
            </summary>
        </member>
        <member name="T:System.Threading.Platform">
            <summary>
            A convenience class for common platform-related logic.
            </summary>
        </member>
        <member name="P:System.Threading.Platform.ProcessorCount">
            <summary>
            Gets the number of available processors available to this process on the current machine.
            </summary>
        </member>
        <member name="T:System.SecuritySafeCriticalAttribute">
            <summary>
            A dummy replacement for the .NET 4.0 SecuritySafeCriticalAttribute. The dummy attribute makes the
            code compile, but we are likely losing the ability to be called from a partial trust environment.
            </summary>
        </member>
        <member name="T:System.Threading.StackCrawlMark2">
            <summary>
            A dummy replacement for the .NET internal class StackCrawlMark.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2">
            <summary>
            Represents a thread-safe collection of keys and values.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <remarks>
            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> are thread-safe and may be used
            concurrently from multiple threads.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that is empty, has the default concurrency level, has the default initial capacity, and
            uses the default comparer for the key type.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level and capacity, and uses the default
            comparer for the key type.
            </summary>
            <param name="concurrencyLevel">The estimated number of threads that will update the
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
            <param name="capacity">The initial number of elements that the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            can contain.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="concurrencyLevel"/> is
            less than 1.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="capacity"/> is less than
            0.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/>, has the default concurrency
            level, has the default initial capacity, and uses the default comparer for the key type.
            </summary>
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to
            the new
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more
            duplicate keys.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level and capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, has the default concurrency level, has the default
            initial capacity, and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary>
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to
            the new
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
            (Nothing in Visual Basic). -or-
            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, 
            has the specified concurrency level, has the specified initial capacity, and uses the specified 
            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary>
            <param name="concurrencyLevel">The estimated number of threads that will update the 
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to the new 
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/> implementation to use 
            when comparing keys.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="collection"/> is a null reference (Nothing in Visual Basic).
            -or-
            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="concurrencyLevel"/> is less than 1.
            </exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            class that is empty, has the specified concurrency level, has the specified initial capacity, and
            uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
            </summary>
            <param name="concurrencyLevel">The estimated number of threads that will update the
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
            <param name="capacity">The initial number of elements that the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            can contain.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
            implementation to use when comparing keys.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="concurrencyLevel"/> is less than 1. -or-
            <paramref name="capacity"/> is less than 0.
            </exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryAdd(`0,`1)">
            <summary>
            Attempts to add the specified key and value to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add. The value can be a null reference (Nothing
            in Visual Basic) for reference types.</param>
            <returns>true if the key/value pair was added to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            contains too many elements.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> contains the specified
            key.
            </summary>
            <param name="key">The key to locate in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
            <returns>true if the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> contains an element with
            the specified key; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryRemove(`0,`1@)">
            <summary>
            Attempts to remove and return the the value with the specified key from the
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
            <param name="key">The key of the element to remove and return.</param>
            <param name="value">When this method returns, <paramref name="value"/> contains the object removed from the
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> or the default value of <typeparamref name="TValue"/>
            if the operation failed.</param>
            <returns>true if an object was removed successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryRemoveInternal(`0,`1@,System.Boolean,`1)">
            <summary>
            Removes the specified key from the dictionary if it exists and returns its associated value.
            If matchValue flag is set, the key will be removed only if is associated with a particular
            value.
            </summary>
            <param name="key">The key to search for and remove if it exists.</param>
            <param name="value">The variable into which the removed value, if found, is stored.</param>
            <param name="matchValue">Whether removal of the key is conditional on its value.</param>
            <param name="oldValue">The conditional value to compare against if <paramref name="matchValue"/> is true</param>
            <returns></returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Attempts to get the value associated with the specified key from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, <paramref name="value"/> contains the object from
            the
            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> with the spedified key or the default value of
            <typeparamref name="TValue"/>, if the operation failed.</param>
            <returns>true if the key was found in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>;
            otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryUpdate(`0,`1,`1)">
            <summary>
            Compares the existing value for the specified key with a specified value, and if they’re equal,
            updates the key with a third value.
            </summary>
            <param name="key">The key whose value is compared with <paramref name="comparisonValue"/> and
            possibly replaced.</param>
            <param name="newValue">The value that replaces the value of the element with <paramref
            name="key"/> if the comparison results in equality.</param>
            <param name="comparisonValue">The value that is compared to the value of the element with
            <paramref name="key"/>.</param>
            <returns>true if the value with <paramref name="key"/> was equal to <paramref
            name="comparisonValue"/> and replaced with <paramref name="newValue"/>; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null
            reference.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.Clear">
            <summary>
            Removes all keys and values from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection"/> to an array of
            type <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>, starting at the
            specified array index.
            </summary>
            <param name="array">The one-dimensional array of type <see
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            that is the destination of the <see
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/> elements copied from the <see
            cref="T:System.Collections.ICollection"/>. The array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than
            the length of the <paramref name="array"/>. -or- The number of elements in the source <see
            cref="T:System.Collections.ICollection"/>
            is greater than the available space from <paramref name="index"/> to the end of the destination
            <paramref name="array"/>.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ToArray">
            <summary>
            Copies the key and value pairs stored in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> to a
            new array.
            </summary>
            <returns>A new array containing a snapshot of key and value pairs copied from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToPairs(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
            Important: the caller must hold all locks in m_locks before calling CopyToPairs.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToEntries(System.Collections.DictionaryEntry[],System.Int32)">
            <summary>
            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
            Important: the caller must hold all locks in m_locks before calling CopyToEntries.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToObjects(System.Object[],System.Int32)">
            <summary>
            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
            
            Important: the caller must hold all locks in m_locks before calling CopyToObjects.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator">
            <summary>Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</summary>
            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
            <remarks>
            The enumerator returned from the dictionary is safe to use concurrently with
            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot
            of the dictionary.  The contents exposed through the enumerator may contain modifications
            made to the dictionary after <see cref="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator"/> was called.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryAddInternal(`0,`1,System.Boolean,System.Boolean,`1@)">
            <summary>
            Shared internal implementation for inserts and updates.
            If key exists, we always return false; and if updateIfExists == true we force update with value;
            If key doesn't exist, we always add value and return true;
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(`0,System.Func{`0,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
            if the key does not already exist.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="valueFactory">The function used to generate a value for the key</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <returns>The value for the key.  This will be either the existing value for the key if the
            key is already in the dictionary, or the new value for the key as returned by valueFactory
            if the key was not in the dictionary.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(`0,`1)">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
            if the key does not already exist.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">the value to be added, if the key does not already exist</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <returns>The value for the key.  This will be either the existing value for the key if the 
            key is already in the dictionary, or the new value if the key was not in the dictionary.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(`0,System.Func{`0,`1},System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key does not already 
            exist, or updates a key/value pair in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key 
            already exists.
            </summary>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValueFactory">The function used to generate a value for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key
            based on the key's existing value</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="addValueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was 
            absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(`0,`1,System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key does not already 
            exist, or updates a key/value pair in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key 
            already exists.
            </summary>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValue">The value to be added for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on 
            the key's existing value</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was 
            absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Add(`0,`1)">
            <summary>
            Adds the specified key and value to the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <exception cref="T:System.ArgumentException">
            An element with the same key already exists in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns>true if the element is successfully remove; otherwise false. This method also returns
            false if
            <paramref name="key"/> was not found in the original <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Adds the specified value to the <see cref="T:System.Collections.Generic.ICollection{TValue}"/>
            with the specified key.
            </summary>
            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            structure representing the key and value to add to the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="keyValuePair"/> of <paramref
            name="keyValuePair"/> is null.</exception>
            <exception cref="T:System.OverflowException">The <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>
            contains too many elements.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/></exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/>
            contains a specific key and value.
            </summary>
            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            structure to locate in the <see
            cref="T:System.Collections.Generic.ICollection{TValue}"/>.</param>
            <returns>true if the <paramref name="keyValuePair"/> is found in the <see
            cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/>; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes a key and value from the dictionary.
            </summary>
            <param name="keyValuePair">The <see
            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
            structure representing the key and value to remove from the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param>
            <returns>true if the key and value represented by <paramref name="keyValuePair"/> is successfully
            found and removed; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">The Key property of <paramref
            name="keyValuePair"/> is a null reference (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</summary>
            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
            <remarks>
            The enumerator returned from the dictionary is safe to use concurrently with
            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot
            of the dictionary.  The contents exposed through the enumerator may contain modifications
            made to the dictionary after <see cref="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator"/> was called.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Add(System.Object,System.Object)">
            <summary>
            Adds the specified key and value to the dictionary.
            </summary>
            <param name="key">The object to use as the key.</param>
            <param name="value">The object to use as the value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="key"/> is of a type that is not assignable to the key type <typeparamref
            name="TKey"/> of the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>. -or-
            <paramref name="value"/> is of a type that is not assignable to <typeparamref name="TValue"/>,
            the type of values in the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            -or- A value with the same key already exists in the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Contains(System.Object)">
            <summary>
            Gets whether the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains an
            element with the specified key.
            </summary>
            <param name="key">The key to locate in the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</param>
            <returns>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains
            an element with the specified key; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"> <paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#GetEnumerator">
            <summary>Provides an <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the
            <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</summary>
            <returns>An <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Remove(System.Object)">
            <summary>
            Removes the element with the specified key from the <see
            cref="T:System.Collections.IDictionary"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an array, starting
            at the specified array index.
            </summary>
            <param name="array">The one-dimensional array that is the destination of the elements copied from
            the <see cref="T:System.Collections.ICollection"/>. The array must have zero-based
            indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than
            the length of the <paramref name="array"/>. -or- The number of elements in the source <see
            cref="T:System.Collections.ICollection"/>
            is greater than the available space from <paramref name="index"/> to the end of the destination
            <paramref name="array"/>.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GrowTable(System.Collections.Concurrent.ConcurrentDictionary{`0,`1}.Node[])">
            <summary>
            Replaces the internal table with a larger one. To prevent multiple threads from resizing the
            table as a result of races, the table of buckets that was deemed too small is passed in as
            an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket
            table has been replaced in the meantime or not.
            </summary>
            <param name="buckets">Reference to the bucket table that was deemed too small.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetBucketAndLockNo(System.Int32,System.Int32@,System.Int32@,System.Int32)">
            <summary>
            Computes the bucket and lock number for a particular key. 
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AcquireAllLocks(System.Int32@)">
            <summary>
            Acquires all locks for this hash table, and increments locksAcquired by the number
            of locks that were successfully acquired. The locks are acquired in an increasing
            order.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AcquireLocks(System.Int32,System.Int32,System.Int32@)">
            <summary>
            Acquires a contiguous range of locks for this hash table, and increments locksAcquired
            by the number of locks that were successfully acquired. The locks are acquired in an
            increasing order.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ReleaseLocks(System.Int32,System.Int32)">
            <summary>
            Releases a contiguous range of locks.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetKeys">
            <summary>
            Gets a collection containing the keys in the dictionary.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetValues">
            <summary>
            Gets a collection containing the values in the dictionary.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.Assert(System.Boolean)">
            <summary>
            A helper method for asserts.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetResource(System.String)">
            <summary>
            A helper function to obtain the string for a particular resource key.
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Get the data array to be serialized
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Construct the dictionary from a previously seiralized one
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Item(`0)">
            <summary>
            Gets or sets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get or set.</param>
            <value>The value associated with the specified key. If the specified key is not found, a get
            operation throws a
            <see cref="T:Sytem.Collections.Generic.KeyNotFoundException"/>, and a set operation creates a new
            element with the specified key.</value>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and
            <paramref name="key"/>
            does not exist in the collection.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Count">
            <summary>
            Gets the number of key/value pairs contained in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
            </summary>
            <exception cref="T:System.OverflowException">The dictionary contains too many
            elements.</exception>
            <value>The number of key/value paris contained in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</value>
            <remarks>Count has snapshot semantics and represents the number of items in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
            at the moment when Count was accessed.</remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.IsEmpty">
            <summary>
            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> is empty.
            </summary>
            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> is empty; otherwise,
            false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Keys">
            <summary>
            Gets a collection containing the keys in the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </summary>
            <value>An <see cref="T:System.Collections.Generic.ICollection{TKey}"/> containing the keys in the
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Values">
            <summary>
            Gets a collection containing the values in the <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
            </summary>
            <value>An <see cref="T:System.Collections.Generic.ICollection{TValue}"/> containing the values in
            the
            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#IsReadOnly">
            <summary>
            Gets a value indicating whether the dictionary is read-only.
            </summary>
            <value>true if the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/> is
            read-only; otherwise, false. For <see
            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>, this property always returns
            false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#IsFixedSize">
            <summary>
            Gets a value indicating whether the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a fixed size.
            </summary>
            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a
            fixed size; otherwise, false. For <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#IsReadOnly">
            <summary>
            Gets a value indicating whether the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is read-only.
            </summary>
            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is
            read-only; otherwise, false. For <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Keys">
            <summary>
            Gets an <see cref="T:System.Collections.ICollection"/> containing the keys of the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
            </summary>
            <value>An <see cref="T:System.Collections.ICollection"/> containing the keys of the <see
            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Values">
            <summary>
            Gets an <see cref="T:System.Collections.ICollection"/> containing the values in the <see
            cref="T:System.Collections.IDictionary"/>.
            </summary>
            <value>An <see cref="T:System.Collections.ICollection"/> containing the values in the <see
            cref="T:System.Collections.IDictionary"/>.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Item(System.Object)">
            <summary>
            Gets or sets the value associated with the specified key.
            </summary>
            <param name="key">The key of the value to get or set.</param>
            <value>The value associated with the specified key, or a null reference (Nothing in Visual Basic)
            if <paramref name="key"/> is not in the dictionary or <paramref name="key"/> is of a type that is
            not assignable to the key type <typeparamref name="TKey"/> of the <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>.</value>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">
            A value is being assigned, and <paramref name="key"/> is of a type that is not assignable to the
            key type <typeparamref name="TKey"/> of the <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>. -or- A value is being
            assigned, and <paramref name="key"/> is of a type that is not assignable to the value type
            <typeparamref name="TValue"/> of the <see
            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>
            </exception>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
            synchronized with the SyncRoot.
            </summary>
            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
            (thread safe); otherwise, false. For <see
            cref="T:System.Collections.Concurrent.ConcurrentDictionary{TKey,TValue}"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.DefaultConcurrencyLevel">
            <summary>
            The number of concurrent writes for which to optimize by default.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2.Node">
            <summary>
            A node in a singly-linked list representing a particular hash table bucket.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2.DictionaryEnumerator">
            <summary>
            A private class to represent enumeration over the dictionary that implements the 
            IDictionaryEnumerator interface.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentQueue`1">
            <summary>
            Represents a thread-safe first-in, first-out collection of objects.
            </summary>
            <typeparam name="T">Specifies the type of elements in the queue.</typeparam>
            <remarks>
            All public  and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> are thread-safe and may be used
            concurrently from multiple threads.
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.IProducerConsumerCollection`1">
            <summary>
            Defines methods to manipulate thread-safe collections intended for producer/consumer usage.
            </summary>
            <typeparam name="T">Specifies the type of elements in the collection.</typeparam>
            <remarks>
            All implementations of this interface must enable all members of this interface
            to be used concurrently from multiple threads.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/> to
            an
            <see cref="T:System.Array"/>, starting at a specified index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
            the elements copied from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
            The array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
            length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is greater than the
            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.TryAdd(`0)">
            <summary>
            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.</param>
            <returns>true if the object was added successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="item"/> was invalid for this collection.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.TryTake(`0@)">
            <summary>
            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
            </summary>
            <param name="item">
            When this method returns, if the object was removed and returned successfully, <paramref name="item"/> contains the removed object. If no object was available to be removed, the value is
            unspecified.
            </param>
            <returns>true if an object was removed and returned successfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.ToArray">
            <summary>
            Copies the elements contained in the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/> to a new array.
            </summary>
            <returns>A new array containing the elements copied from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> class.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.InitializeFromCollection(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes the contents of the queue from an existing collection.
            </summary>
            <param name="collection">A collection from which to copy elements.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
            class that contains elements copied from the specified collection
            </summary>
            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
            null.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Get the data array to be serialized
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Construct the queue from a previously seiralized one
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
            <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
            destination of the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentBag"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="array"/> is multidimensional. -or-
            <paramref name="array"/> does not have zero-based indexing. -or-
            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
            greater than the available space from <paramref name="index"/> to the end of the destination
            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
            destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
            <summary>
            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. The value can be a null
            reference (Nothing in Visual Basic) for reference types.
            </param>
            <returns>true if the object was added successfully; otherwise, false.</returns>
            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this operation will always add the object to the
            end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
            and return true.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryTake(`0@)">
            <summary>
            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
            </summary>
            <param name="item">
            When this method returns, if the operation was successful, <paramref name="item"/> contains the
            object removed. If no object was available to be removed, the value is unspecified.
            </param>
            <returns>true if an element was removed and returned succesfully; otherwise, false.</returns>
            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this operation will attempt to remove the object
            from the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.ToArray">
            <summary>
            Copies the elements stored in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> to a new array.
            </summary>
            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.ToList">
            <summary>
            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> elements to a new <see cref="T:System.Collections.Generic.List{T}"/>.
            </summary>
            <returns>A new <see cref="T:System.Collections.Generic.List{T}"/> containing a snapshot of
            elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.GetHeadTailPositions(System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@,System.Int32@,System.Int32@)">
            <summary>
            Store the position of the current head and tail positions.
            </summary>
            <param name="head">return the head segment</param>
            <param name="tail">return the tail segment</param>
            <param name="headLow">return the head offset</param>
            <param name="tailHigh">return the tail offset</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> elements to an existing one-dimensional <see cref="T:System.Array">Array</see>, starting at the specified array index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
            destination of the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based
            indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
            length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is greater than the
            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
            </summary>
            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
            <remarks>
            The enumeration represents a moment-in-time snapshot of the contents
            of the queue.  It does not reflect any updates to the collection after 
            <see cref="M:System.Collections.Concurrent.ConcurrentQueue`1.GetEnumerator"/> was called.  The enumerator is safe to use
            concurrently with reads from and writes to the queue.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Enqueue(`0)">
            <summary>
            Adds an object to the end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
            </summary>
            <param name="item">The object to add to the end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>. The value can be a null reference
            (Nothing in Visual Basic) for reference types.
            </param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.TryDequeue(`0@)">
            <summary>
            Attempts to remove and return the object at the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
            </summary>
            <param name="result">
            When this method returns, if the operation was successful, <paramref name="result"/> contains the
            object removed. If no object was available to be removed, the value is unspecified.
            </param>
            <returns>true if an element was removed and returned from the beggining of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
            succesfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.TryPeek(`0@)">
            <summary>
            Attempts to return an object from the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
            without removing it.
            </summary>
            <param name="result">When this method returns, <paramref name="result"/> contains an object from
            the beginning of the <see cref="T:System.Collections.Concurrent.ConccurrentQueue{T}"/> or an
            unspecified value if the operation failed.</param>
            <returns>true if and object was returned successfully; otherwise, false.</returns>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
            synchronized with the SyncRoot.
            </summary>
            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty">
            <summary>
            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is empty.
            </summary>
            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is empty; otherwise, false.</value>
            <remarks>
            For determining whether the collection contains any items, use of this property is recommended
            rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.Count"/> property and comparing it
            to 0.  However, as this collection is intended to be accessed concurrently, it may be the case
            that another thread will modify the collection after <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty"/> returns, thus invalidating
            the result.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
            </summary>
            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</value>
            <remarks>
            For determining whether the collection contains any items, use of the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty"/>
            property is recommended rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.Count"/>
            property and comparing it to 0.
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentQueue`1.Segment">
            <summary>
            private class for ConcurrentQueue. 
            a queue is a linked list of small arrays, each node is called a segment.
            A segment contains an array, a pointer to the next segment, and m_low, m_high indices recording
            the first and last valid elements of the array.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.#ctor(System.Int64)">
            <summary>
            Create and initialize a segment with the specified index.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.UnsafeAdd(`0)">
            <summary>
            Add an element to the tail of the current segment
            exclusively called by ConcurrentQueue.InitializedFromCollection
            InitializeFromCollection is responsible to guaratee that there is no index overflow,
            and there is no contention
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.UnsafeGrow">
            <summary>
            Create a new segment and append to the current one
            Does not update the m_tail pointer
            exclusively called by ConcurrentQueue.InitializedFromCollection
            InitializeFromCollection is responsible to guaratee that there is no index overflow,
            and there is no contention
            </summary>
            <returns>the reference to the new Segment</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Grow(System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
            <summary>
            Create a new segment and append to the current one
            Update the m_tail pointer
            This method is called when there is no contention
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryAppend(`0,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
            <summary>
            Try to append an element at the end of this segment.
            </summary>
            <param name="value">the element to append</param>
            <param name="tail">The tail.</param>
            <returns>true if the element is appended, false if the current segment is full</returns>
            <remarks>if appending the specified element succeeds, and after which the segment is full, 
            then grow the segment</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryRemove(`0@,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
            <summary>
            try to remove an element from the head of current segment
            </summary>
            <param name="result">The result.</param>
            <param name="head">The head.</param>
            <returns>return false only if the current segment is empty</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryPeek(`0@)">
            <summary>
            try to peek the current segment
            </summary>
            <param name="result">holds the return value of the element at the head position, 
            value set to default(T) if there is no such an element</param>
            <returns>true if there are elements in the current segment, false otherwise</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.ToList(System.Int32,System.Int32)">
            <summary>
            Convert part or all of the current segment into a List
            </summary>
            <param name="start">the start position</param>
            <param name="end">the end position</param>
            <returns>the result list </returns>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Next">
            <summary>
            return the next segment
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.IsEmpty">
            <summary>
            return true if the current segment is empty (doesn't have any element available to dequeue, 
            false otherwise
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Low">
            <summary>
            return the position of the head of the current segment
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.High">
            <summary>
            return the logical position of the tail of the current segment      
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentStack`1">
            <summary>
            Represents a thread-safe last-in, first-out collection of objects.
            </summary>
            <typeparam name="T">Specifies the type of elements in the stack.</typeparam>
            <remarks>
            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> are thread-safe and may be used
            concurrently from multiple threads.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            class.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            class that contains elements copied from the specified collection
            </summary>
            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
            null.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.InitializeFromCollection(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes the contents of the stack from an existing collection.
            </summary>
            <param name="collection">A collection from which to copy elements.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Get the data array to be serialized
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Construct the stack from a previously seiralized one
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Clear">
            <summary>
            Removes all objects from the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
            <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
            the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The <see cref="T:System.Array"/> must
            have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="array"/> is multidimensional. -or-
            <paramref name="array"/> does not have zero-based indexing. -or-
            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
            greater than the available space from <paramref name="index"/> to the end of the destination
            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
            destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> elements to an existing one-dimensional <see cref="T:System.Array"/>, starting at the specified array index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
            the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The <see cref="T:System.Array"/> must have zero-based
            indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
            length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is greater than the
            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)">
            <summary>
            Inserts an object at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </summary>
            <param name="item">The object to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The value can be
            a null reference (Nothing in Visual Basic) for reference types.
            </param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushRange(`0[])">
            <summary>
            Inserts multiple objects at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> atomically.
            </summary>
            <param name="items">The objects to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <remarks>
            When adding multiple items to the stack, using PushRange is a more efficient
            mechanism than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)"/> one item at a time.  Additionally, PushRange
            guarantees that all of the elements will be added atomically, meaning that no other threads will
            be able to inject elements between the elements being pushed.  Items at lower indices in
            the <paramref name="items"/> array will be pushed before items at higher indices.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushRange(`0[],System.Int32,System.Int32)">
            <summary>
            Inserts multiple objects at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> atomically.
            </summary>
            <param name="items">The objects to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <param name="startIndex">The zero-based offset in <paramref name="items"/> at which to begin
            inserting elements onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <param name="count">The number of elements to be inserted onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> or <paramref name="count"/> is negative. Or <paramref name="startIndex"/> is greater than or equal to the length 
            of <paramref name="items"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="startIndex"/> + <paramref name="count"/> is
            greater than the length of <paramref name="items"/>.</exception>
            <remarks>
            When adding multiple items to the stack, using PushRange is a more efficient
            mechanism than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)"/> one item at a time. Additionally, PushRange
            guarantees that all of the elements will be added atomically, meaning that no other threads will
            be able to inject elements between the elements being pushed. Items at lower indices in the
            <paramref name="items"/> array will be pushed before items at higher indices.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushCore(System.Collections.Concurrent.ConcurrentStack{`0}.Node,System.Collections.Concurrent.ConcurrentStack{`0}.Node)">
            <summary>
            Push one or many nodes into the stack, if head and tails are equal then push one node to the stack other wise push the list between head
            and tail to the stack
            </summary>
            <param name="head">The head pointer to the new list</param>
            <param name="tail">The tail pointer to the new list</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ValidatePushPopRangeInput(`0[],System.Int32,System.Int32)">
            <summary>
            Local helper function to validate the Pop Push range methods input
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
            <summary>
            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. The value can be a null
            reference (Nothing in Visual Basic) for reference types.
            </param>
            <returns>true if the object was added successfully; otherwise, false.</returns>
            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this operation
            will always insert the object onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            and return true.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPeek(`0@)">
            <summary>
            Attempts to return an object from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            without removing it.
            </summary>
            <param name="result">When this method returns, <paramref name="result"/> contains an object from
            the top of the <see cref="T:System.Collections.Concurrent.ConccurrentStack{T}"/> or an
            unspecified value if the operation failed.</param>
            <returns>true if and object was returned successfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)">
            <summary>
            Attempts to pop and return the object at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </summary>
            <param name="result">
            When this method returns, if the operation was successful, <paramref name="result"/> contains the
            object removed. If no object was available to be removed, the value is unspecified.
            </param>
            <returns>true if an element was removed and returned from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            succesfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopRange(`0[])">
            <summary>
            Attempts to pop and return multiple objects from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            atomically.
            </summary>
            <param name="items">
            The <see cref="T:System.Array"/> to which objects popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> will be added.
            </param>
            <returns>The number of objects successfully popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> and inserted in
            <paramref name="items"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null argument (Nothing
            in Visual Basic).</exception>
            <remarks>
            When popping multiple items, if there is little contention on the stack, using
            TryPopRange can be more efficient than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)"/>
            once per item to be removed.  Nodes fill the <paramref name="items"/>
            with the first node to be popped at the startIndex, the second node to be popped
            at startIndex + 1, and so on.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopRange(`0[],System.Int32,System.Int32)">
            <summary>
            Attempts to pop and return multiple objects from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
            atomically.
            </summary>
            <param name="items">
            The <see cref="T:System.Array"/> to which objects popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> will be added.
            </param>
            <param name="startIndex">The zero-based offset in <paramref name="items"/> at which to begin
            inserting elements from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
            <param name="count">The number of elements to be popped from top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> and inserted into <paramref name="items"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
            (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> or <paramref name="count"/> is negative. Or <paramref name="startIndex"/> is greater than or equal to the length 
            of <paramref name="items"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="startIndex"/> + <paramref name="count"/> is
            greater than the length of <paramref name="items"/>.</exception>
            <remarks>
            When popping multiple items, if there is little contention on the stack, using
            TryPopRange can be more efficient than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)"/>
            once per item to be removed.  Nodes fill the <paramref name="items"/>
            with the first node to be popped at the startIndex, the second node to be popped
            at startIndex + 1, and so on.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopCore(`0@)">
            <summary>
            Local helper function to Pop an item from the stack, slow path
            </summary>
            <param name="result">The popped item</param>
            <returns>True if succeeded, false otherwise</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopCore(System.Int32,System.Collections.Concurrent.ConcurrentStack{`0}.Node@)">
            <summary>
            Slow path helper for TryPop. This method assumes an initial attempt to pop an element
            has already occurred and failed, so it begins spinning right away.
            </summary>
            <param name="count">The number of items to pop.</param>
            <param name="poppedHead">
            When this method returns, if the pop succeeded, contains the removed object. If no object was
            available to be removed, the value is unspecified. This parameter is passed uninitialized.
            </param>
            <returns>True if an element was removed and returned; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack{`0}.Node,`0[],System.Int32,System.Int32)">
            <summary>
            Local helper function to copy the poped elements into a given collection
            </summary>
            <param name="head">The head of the list to be copied</param>
            <param name="collection">The collection to place the popped items in</param>
            <param name="startIndex">the beginning of index of where to place the popped items</param>
            <param name="nodesCount">The number of nodes.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryTake(`0@)">
            <summary>
            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
            </summary>
            <param name="item">
            When this method returns, if the operation was successful, <paramref name="item"/> contains the
            object removed. If no object was available to be removed, the value is unspecified.
            </param>
            <returns>true if an element was removed and returned succesfully; otherwise, false.</returns>
            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this operation will attempt to pope the object at
            the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ToArray">
            <summary>
            Copies the items stored in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> to a new array.
            </summary>
            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ToList">
            <summary>
            Returns an array containing a snapshot of the list's contents, using
            the target list node as the head of a region in the list.
            </summary>
            <returns>An array of the list's contents.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </summary>
            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</returns>
            <remarks>
            The enumeration represents a moment-in-time snapshot of the contents
            of the stack.  It does not reflect any updates to the collection after 
            <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator"/> was called.  The enumerator is safe to use
            concurrently with reads from and writes to the stack.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> that can be used to iterate through
            the collection.</returns>
            <remarks>
            The enumeration represents a moment-in-time snapshot of the contents of the stack. It does not
            reflect any updates to the collection after
            <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator"/> was called. The enumerator is safe to use concurrently with reads
            from and writes to the stack.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty">
            <summary>
            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is empty.
            </summary>
            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is empty; otherwise, false.</value>
            <remarks>
            For determining whether the collection contains any items, use of this property is recommended
            rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.Count"/> property and comparing it
            to 0.  However, as this collection is intended to be accessed concurrently, it may be the case
            that another thread will modify the collection after <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty"/> returns, thus invalidating
            the result.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
            </summary>
            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</value>
            <remarks>
            For determining whether the collection contains any items, use of the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty"/>
            property is recommended rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.Count"/>
            property and comparing it to 0.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
            synchronized with the SyncRoot.
            </summary>
            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported</exception>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentStack`1.Node">
            <summary>
            A simple (internal) node type used to store elements of concurrent stacks and queues.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Node.#ctor(`0)">
            <summary>
            Constructs a new node with the specified value and no next node.
            </summary>
            <param name="value">The value of the node.</param>
        </member>
        <member name="T:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1">
            <summary>
            A debugger view of the IProducerConsumerCollection that makes it simple to browse the
            collection's contents at a point in time.
            </summary>
            <typeparam name="T">The type of elements stored within.</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0})">
            <summary>
            Constructs a new debugger view object for the provided collection object.
            </summary>
            <param name="collection">A collection to browse in the debugger.</param>
        </member>
        <member name="P:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1.Items">
            <summary>
            Returns a snapshot of the underlying collection's elements.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.OrderablePartitioner`1">
            <summary>
            Represents a particular manner of splitting an orderable data source into multiple partitions.
            </summary>
            <typeparam name="TSource">Type of the elements in the collection.</typeparam>
            <remarks>
            <para>
            Each element in each partition has an integer index associated with it, which determines the relative
            order of that element against elements in other partitions.
            </para>
            <para>
            Inheritors of <see cref="T:System.Collections.Concurrent.OrderablePartitioner`1"/> must adhere to the following rules:
            <ol>
            <li>All indices must be unique, such that there may not be duplicate indices. If all indices are not
            unique, the output ordering may be scrambled.</li>
            <li>All indices must be non-negative. If any indices are negative, consumers of the implementation
            may throw exceptions.</li>
            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> should throw a
            <see cref="T:System.ArgumentOutOfRangeException"/> if the requested partition count is less than or
            equal to zero.</li>
            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> should always return a number
            of enumerables equal to the requested partition count. If the partitioner runs out of data and cannot
            create as many partitions as requested, an empty enumerator should be returned for each of the
            remaining partitions. If this rule is not followed, consumers of the implementation may throw a <see cref="T:System.InvalidOperationException"/>.</li>
            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/>, <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/>,
            <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/>, and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/>
            should never return null. If null is returned, a consumer of the implementation may throw a
            <see cref="T:System.InvalidOperationException"/>.</li>
            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/>, <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/>,
            <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/>, and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/>
            should always return partitions that can fully and uniquely enumerate the input data source. All of
            the data and only the data contained in the input source should be enumerated, with no duplication
            that was not already in the input, unless specifically required by the particular partitioner's
            design. If this is not followed, the output ordering may be scrambled.</li>
            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedInEachPartition"/> returns true, each partition must return elements
            with increasing key indices.</li>
            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions"/> returns true, all the keys in partition numbered N
            must be larger than all the keys in partition numbered N-1.</li>
            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized"/> returns true, all indices must be monotonically increasing from
            0, though not necessarily within a single partition.</li>
            </ol>
            </para>
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner`1">
            <summary>
            Represents a particular manner of splitting a data source into multiple partitions.
            </summary>
            <typeparam name="TSource">Type of the elements in the collection.</typeparam>
            <remarks>
            <para>
            Inheritors of <see cref="T:System.Collections.Concurrent.Partitioner`1"/> must adhere to the following rules:
            <ol>
            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> should throw a
            <see cref="T:System.ArgumentOutOfRangeException"/> if the requested partition count is less than or
            equal to zero.</li>
            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> should always return a number of enumerables equal to the requested
            partition count. If the partitioner runs out of data and cannot create as many partitions as 
            requested, an empty enumerator should be returned for each of the remaining partitions. If this rule
            is not followed, consumers of the implementation may throw a <see cref="T:System.InvalidOperationException"/>.</li>
            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/>
            should never return null. If null is returned, a consumer of the implementation may throw a
            <see cref="T:System.InvalidOperationException"/>.</li>
            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/> should always return
            partitions that can fully and uniquely enumerate the input data source. All of the data and only the
            data contained in the input source should be enumerated, with no duplication that was not already in
            the input, unless specifically required by the particular partitioner's design. If this is not
            followed, the output ordering may be scrambled.</li>
            </ol>
            </para>
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)">
            <summary>
            Partitions the underlying collection into the given number of partitions.
            </summary>
            <param name="partitionCount">The number of partitions to create.</param>
            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions">
            <summary>
            Creates an object that can partition the underlying collection into a variable number of
            partitions.
            </summary>
            <remarks>
            <para>
            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
            object creates another partition over the sequence.
            </para>
            <para>
            The <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/>
            property returns true.
            </para>
            </remarks>
            <returns>An object that can create partitions over the underlying data source.</returns>
            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
            partitioner.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions">
            <summary>
            Gets whether additional partitions can be created dynamically.
            </summary>
            <returns>
            true if the <see cref="T:System.Collections.Concurrent.Partitioner`1"/> can create partitions dynamically as they are
            requested; false if the <see cref="T:System.Collections.Concurrent.Partitioner`1"/> can only allocate
            partitions statically.
            </returns>
            <remarks>
            <para>
            If a derived class does not override and implement <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/>,
            <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/> should return false. The value of <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/> should not vary over the lifetime of this instance.
            </para>
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.#ctor(System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.OrderablePartitioner`1"/> class with the
            specified constraints on the index keys.
            </summary>
            <param name="keysOrderedInEachPartition">
            Indicates whether the elements in each partition are yielded in the order of
            increasing keys.
            </param>
            <param name="keysOrderedAcrossPartitions">
            Indicates whether elements in an earlier partition always come before
            elements in a later partition. If true, each element in partition 0 has a smaller order key than
            any element in partition 1, each element in partition 1 has a smaller order key than any element
            in partition 2, and so on.
            </param>
            <param name="keysNormalized">
            Indicates whether keys are normalized. If true, all order keys are distinct
            integers in the range [0 .. numberOfElements-1]. If false, order keys must still be dictinct, but
            only their relative order is considered, not their absolute values.
            </param>
        </member>
        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)">
            <summary>
            Partitions the underlying collection into the specified number of orderable partitions.
            </summary>
            <remarks>
            Each partition is represented as an enumerator over key-value pairs.
            The value of the pair is the element itself, and the key is an integer which determines
            the relative ordering of this element against other elements in the data source.
            </remarks>
            <param name="partitionCount">The number of partitions to create.</param>
            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions">
            <summary>
            Creates an object that can partition the underlying collection into a variable number of
            partitions.
            </summary>
            <remarks>
            <para>
            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
            object creates another partition over the sequence.
            </para>
            <para>
            Each partition is represented as an enumerator over key-value pairs. The value in the pair is the element
            itself, and the key is an integer which determines the relative ordering of this element against
            other elements.
            </para>
            <para>
            The <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions">SupportsDynamicPartitions</see>
            property returns true.
            </para>
            </remarks>
            <returns>An object that can create partitions over the underlying data source.</returns>
            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
            partitioner.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)">
            <summary>
            Partitions the underlying collection into the given number of ordered partitions.
            </summary>
            <remarks>
            The default implementation provides the same behavior as <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> except
            that the returned set of partitions does not provide the keys for the elements.
            </remarks>
            <param name="partitionCount">The number of partitions to create.</param>
            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions">
            <summary>
            Creates an object that can partition the underlying collection into a variable number of
            partitions.
            </summary>
            <remarks>
            <para>
            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
            object creates another partition over the sequence.
            </para>
            <para>
            The default implementation provides the same behavior as <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/> except
            that the returned set of partitions does not provide the keys for the elements.
            </para>
            <para>
            The <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/>
            property returns true.
            </para>
            </remarks>
            <returns>An object that can create partitions over the underlying data source.</returns>
            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
            partitioner.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedInEachPartition">
            <summary>
            Gets whether elements in each partition are yielded in the order of increasing keys.
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions">
            <summary>
            Gets whether elements in an earlier partition always come before elements in a later partition.
            </summary>
            <remarks>
            If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions"/> returns true, each element in partition 0 has a
            smaller order key than any element in partition 1, each element in partition 1 has a smaller
            order key than any element in partition 2, and so on.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized">
            <summary>
            Gets whether order keys are normalized.
            </summary>
            <remarks>
            If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized"/> returns true, all order keys are distinct integers in the range
            [0 .. numberOfElements-1]. If the property returns false, order keys must still be dictinct, but
            only their relative order is considered, not their absolute values.
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.OrderablePartitioner`1.EnumerableDropIndices">
            <summary>
            Converts an enumerable over key-value pairs to an enumerable over values.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner">
            <summary>
            Provides common partitioning strategies for arrays, lists, and enumerables.
            </summary>
            <remarks>
            <para>
            The static methods on <see cref="T:System.Collections.Concurrent.Partitioner"/> are all thread-safe and may be used concurrently
            from multiple threads. However, while a created partitioner is in use, the underlying data source
            should not be modified, whether from the same thread that's using a partitioner or from a separate
            thread.
            </para>
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(System.Collections.Generic.IList{``0},System.Boolean)">
            <summary>
            Creates an orderable partitioner from an <see cref="T:System.Collections.Generic.IList`1"/>
            instance.
            </summary>
            <typeparam name="TSource">Type of the elements in source list.</typeparam>
            <param name="list">The list to be partitioned.</param>
            <param name="loadBalance">
            A Boolean value that indicates whether the created partitioner should dynamically
            load balance between partitions rather than statically partition.
            </param>
            <returns>
            An orderable partitioner based on the input list.
            </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(``0[],System.Boolean)">
            <summary>
            Creates an orderable partitioner from a <see cref="T:System.Array"/> instance.
            </summary>
            <typeparam name="TSource">Type of the elements in source array.</typeparam>
            <param name="array">The array to be partitioned.</param>
            <param name="loadBalance">
            A Boolean value that indicates whether the created partitioner should dynamically load balance
            between partitions rather than statically partition.
            </param>
            <returns>
            An orderable partitioner based on the input array.
            </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Creates an orderable partitioner from a <see cref="T:System.Collections.Generic.IEnumerable`1"/> instance.
            </summary>
            <typeparam name="TSource">Type of the elements in source enumerable.</typeparam>
            <param name="source">The enumerable to be partitioned.</param>
            <returns>
            An orderable partitioner based on the input array.
            </returns>
            <remarks>
            The ordering used in the created partitioner is determined by the natural order of the elements 
            as retrieved from the source enumerable.
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2">
            <summary>
            DynamicPartitionEnumerator_Abstract defines the enumerator for each partition for the dynamic load-balance
            partitioning algorithm. 
            - Partition is an enumerator of KeyValuePairs, each corresponding to an item in the data source: 
              the key is the index in the source collection; the value is the item itself.
            - a set of such partitions share a reader over data source. The type of the reader is specified by
              TSourceReader. 
            - each partition requests a contiguous chunk of elements at a time from the source data. The chunk 
              size is initially 1, and doubles every time until it reaches the maximum chunk size. 
              The implementation for GrabNextChunk() method has two versions: one for data source of IndexRange 
              types (IList and the array), one for data source of IEnumerable.
            - The method "Reset" is not supported for any partitioning algorithm.
            - The implementation for MoveNext() method is same for all dynanmic partitioners, so we provide it
              in this abstract class.
            </summary>
            <typeparam name="TSource">Type of the elements in the data source</typeparam>
            <typeparam name="TSourceReader">Type of the reader on the data source</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.GrabNextChunk(System.Int32)">
            <summary>
            Abstract method to request a contiguous chunk of elements from the source collection
            </summary>
            <param name="requestedChunkSize">specified number of elements requested</param>
            <returns>
            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
            false if all elements in the source collection have been reserved.
            </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Dispose">
            <summary>
            Dispose is abstract, and depends on the type of the source data:
            - For source data type IList and Array, the type of the shared reader is just the dataitself.
              We don't do anything in Dispose method for IList and Array. 
            - For source data type IEnumerable, the type of the shared reader is an enumerator we created.
              Thus we need to dispose this shared reader enumerator, when there is no more active partitions
              left.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Reset">
            <summary>
            Reset on partitions is not supported
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.MoveNext">
            <summary>
            Moves to the next element if any.
            Try current chunk first, if the current chunk do not have any elements left, then we 
            attempt to grab a chunk from the source collection.
            </summary>
            <returns>
            true if successfully moving to the next position;
            false otherwise, if and only if there is no more elements left in the current chunk 
            AND the source collection is exhausted. 
            </returns>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.HasNoElementsLeft">
            <summary>
            Abstract property, returns whether or not the shared reader has already read the last 
            element of the source data 
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Current">
            <summary>
            Get the current element in the current partition. Property required by IEnumerator interface
            This property is abstract because the implementation is different depending on the type
            of the source data: IList, Array or IEnumerable
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.System#Collections#IEnumerator#Current">
            <summary>
            Get the current element in the current partition. Property required by IEnumerator interface
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1">
            <summary>
            Inherits from DynamicPartitioners
            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
            of EnumerableOfPartitionsForIEnumerator defined internally
            </summary>
            <typeparam name="TSource">Type of elements in the source data</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.GetOrderablePartitions(System.Int32)">
            <summary>
            Overrides OrderablePartitioner.GetOrderablePartitions.
            Partitions the underlying collection into the given number of orderable partitions.
            </summary>
            <param name="partitionCount">number of partitions requested</param>
            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.GetOrderableDynamicPartitions">
            <summary>
            Overrides OrderablePartitioner.GetOrderableDyanmicPartitions
            </summary>
            <returns>a enumerable collection of orderable partitions</returns>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.SupportsDynamicPartitions">
            <summary>
            Whether additional partitions can be created dynamically.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerable">
            <summary>
            Provides customized implementation for source data of IEnumerable
            Different from the counterpart for IList/Array, this enumerable maintains several additional fields
            shared by the partitions it owns, including a boolean "m_hasNoElementsLef", a shared lock, and a 
            shared count "m_activePartitionCount"
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator">
            <summary>
            Inherits from DynamicPartitionEnumerator_Abstract directly
            Provides customized implementation for: GrabNextChunk, HasNoElementsLeft, Current, Dispose
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.GrabNextChunk(System.Int32)">
            <summary>
            Reserves a contiguous range of elements from source data
            </summary>
            <param name="requestedChunkSize">specified number of elements requested</param>
            <returns>
            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
            false if all elements in the source collection have been reserved.
            </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.Dispose">
            <summary>
            If the current partition is to be disposed, we decrement the number of active partitions
            for the shared reader. 
            If the number of active partitions becomes 0, we need to dispose the shared reader we created
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.HasNoElementsLeft">
            <summary>
            Returns whether or not the shared reader has already read the last 
            element of the source data 
            </summary>
            <remarks>
            We cannot call m_sharedReader.MoveNext(), to see if it hits the last element
            or not, because we can't undo MoveNext(). Thus we need to maintain a shared 
            boolean value m_hasNoElementsLeft across all partitions
            </remarks>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2">
            <summary>
            Dynamic load-balance partitioner. This class is abstract and to be derived from by 
            the customized partitioner classes for IList, Array, and IEnumerable
            </summary>
            <typeparam name="TSource">Type of the elements in the source data</typeparam>
            <typeparam name="TCollection"> Type of the source data collection</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.#ctor(`1)">
            <summary>
            Constructs a new orderable partitioner 
            </summary>
            <param name="data">source data collection</param>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderableDynamicPartitions_Factory(`1)">
            <summary>
            Partition the source data and create an enumerable over the resulting partitions. 
            </summary>
            <param name="data">the source data collection</param>
            <returns>an enumerable of partitions of </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderablePartitions(System.Int32)">
            <summary>
            Overrides OrderablePartitioner.GetOrderablePartitions.
            Partitions the underlying collection into the given number of orderable partitions.
            </summary>
            <param name="partitionCount">number of partitions requested</param>
            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderableDynamicPartitions">
            <summary>
            Overrides OrderablePartitioner.GetOrderableDyanmicPartitions
            </summary>
            <returns>a enumerable collection of orderable partitions</returns>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.SupportsDynamicPartitions">
            <summary>
            Whether additional partitions can be created dynamically.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2">
            <summary>
            Defines dynamic partition for source data of IList and Array. 
            This class inherits DynamicPartitionEnumerator_Abstract
              - implements GrabNextChunk, HasNoElementsLeft, and Dispose methods for IList and Array
              - Current property still remains abstract, implementation is different for IList and Array
              - introduces another abstract method SourceCount, which returns the number of elements in
                the source data. Implementation differs for IList and Array
            </summary>
            <typeparam name="TSource">Type of the elements in the data source</typeparam>
            <typeparam name="TSourceReader">Type of the reader on the source data</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.GrabNextChunk(System.Int32)">
            <summary>
            Reserves a contiguous range of elements from source data
            </summary>
            <param name="requestedChunkSize">specified number of elements requested</param>
            <returns>
            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
            false if all elements in the source collection have been reserved.
            </returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.Dispose">
            <summary>
            For source data type IList and Array, the type of the shared reader is just the data itself.
            We don't do anything in Dispose method for IList and Array. 
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.SourceCount">
            <summary>
            Get the number of elements from the source reader.
            It calls IList.Count or Array.Length
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.HasNoElementsLeft">
            <summary>
            Returns whether or not the shared reader has already read the last 
            element of the source data 
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1">
            <summary>
            Inherits from DynamicPartitioners
            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
            of EnumerableOfPartitionsForIList defined internally
            </summary>
            <typeparam name="TSource">Type of elements in the source data</typeparam>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerable">
            <summary>
            Inherits from PartitionList_Abstract 
            Provides customized implementation for source data of IList
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerator">
            <summary>
            Inherits from DynamicPartitionEnumeratorForIndexRange_Abstract
            Provides customized implementation of SourceCount property and Current property for IList
            </summary>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerator.Current">
            <summary>
            return a KeyValuePair of the current element and its key 
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1">
            <summary>
            Inherits from DynamicPartitioners
            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
            of EnumerableOfPartitionsForArray defined internally
            </summary>
            <typeparam name="TSource">Type of elements in the source data</typeparam>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1.InternalPartitionEnumerable">
            <summary>
            Inherits from PartitionList_Abstract 
            Provides customized implementation for source data of Array
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1.InternalPartitionEnumerator">
            <summary>
            Inherits from DynamicPartitionEnumeratorForIndexRange_Abstract
            Provides customized implementation of SourceCount property and Current property for Array
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2">
            <summary>
            Static partitioning over IList. 
            - dynamic and load-balance
            - Keys are ordered within each partition
            - Keys are ordered across partitions
            - Keys are normalized
            - Number of partitions is fixed once specified, and the elements of the source data are 
            distributed to each partition as evenly as possible. 
            </summary>
            <typeparam name="TSource">type of the elements</typeparam>        
            <typeparam name="TCollection">Type of the source data collection</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.CreatePartition(System.Int32,System.Int32)">
            <summary>
            Abstract method to create a partition that covers a range over source data, 
            starting from "startIndex", ending at "endIndex"
            </summary>
            <param name="startIndex">start index of the current partition on the source data</param>
            <param name="endIndex">end index of the current partition on the source data</param>
            <returns>a partition enumerator over the specified range</returns>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.GetOrderablePartitions(System.Int32)">
            <summary>
            Overrides OrderablePartitioner.GetOrderablePartitions
            Return a list of partitions, each of which enumerate a fixed part of the source data
            The elements of the source data are distributed to each partition as evenly as possible. 
            Specifically, if the total number of elements is N, and number of partitions is x, and N = a*x +b, 
            where a is the quotient, and b is the remainder. Then the first b partitions each has a + 1 elements,
            and the last x-b partitions each has a elements.
            For example, if N=10, x =3, then 
               partition 0 ranges [0,3],
               partition 1 ranges [4,6],
               partition 2 ranges [7,9].
            This also takes care of the situation of (x&gt;N), the last x-N partitions are empty enumerators. 
            An empty enumerator is indicated by 
                 (m_startIndex == list.Count &amp;&amp; m_endIndex == list.Count -1)
            </summary>
            <param name="partitionCount">specified number of partitions</param>
            <returns>a list of partitions</returns>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.SourceCount">
            <summary>
            Abstract method to return the number of elements in the source data
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1">
            <summary>
            Static Partition for IList/Array.
            This class implements all methods required by IEnumerator interface, except for the Current property.
            Current Property is different for IList and Array. Arrays calls 'ldelem' instructions for faster element 
            retrieval.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.#ctor(System.Int32,System.Int32)">
            <summary>
            Constructs an instance of StaticIndexRangePartition
            </summary>
            <param name="startIndex">the start index in the source collection for the current partition </param>
            <param name="endIndex">the end index in the source collection for the current partition</param>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.Dispose">
            <summary>
            We don't dispose the source for IList and array
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.MoveNext">
            <summary>
            Moves to the next item
            Before the first MoveNext is called: m_offset == m_startIndex-1;
            </summary>
            <returns>true if successful, false if there is no item left</returns>
        </member>
        <member name="P:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.Current">
            <summary>
            Current Property is different for IList and Array. Arrays calls 'ldelem' instructions for faster 
            element retrieval.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionerForIList`1">
            <summary>
            Inherits from StaticIndexRangePartitioner
            Provides customized implementation of SourceCount and CreatePartition
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionForIList`1">
            <summary>
            Inherits from StaticIndexRangePartition
            Provides customized implementation of Current property
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionerForArray`1">
            <summary>
            Inherits from StaticIndexRangePartitioner
            Provides customized implementation of SourceCount and CreatePartition for Array
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionForArray`1">
            <summary>
            Inherits from StaticIndexRangePartitioner
            Provides customized implementation of SourceCount and CreatePartition
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.Partitioner.Shared`1">
            <summary>
            A very simple primitive that allows us to share a value across multiple threads.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.AggregateException">
            <summary>Represents one or more errors that occur during application execution.</summary>
            <remarks>
            <see cref="T:System.AggregateException"/> is used to consolidate multiple failures into a single, throwable
            exception object.
            </remarks>
        </member>
        <member name="M:System.AggregateException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class.
            </summary>
        </member>
        <member name="M:System.AggregateException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
            a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:System.AggregateException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
            message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerException"/> argument
            is null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.Collections.Generic.IEnumerable{System.Exception})">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
            references to the inner exceptions that are the cause of this exception.
            </summary>
            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
            is null.</exception>
            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.Exception[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
            references to the inner exceptions that are the cause of this exception.
            </summary>
            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
            is null.</exception>
            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.String,System.Collections.Generic.IEnumerable{System.Exception})">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
            message and references to the inner exceptions that are the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
            is null.</exception>
            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.String,System.Exception[])">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
            message and references to the inner exceptions that are the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
            is null.</exception>
            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.String,System.Collections.Generic.IList{System.Exception})">
            <summary>
            Allocates a new aggregate exception with the specified message and list of inner exceptions.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
            is null.</exception>
            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with serialized data.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
            the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
            contains contextual information about the source or destination. </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> argument is null.</exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">The exception could not be deserialized correctly.</exception>
        </member>
        <member name="M:System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Sets the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with information about
            the exception.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
            the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
            contains contextual information about the source or destination. </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> argument is null.</exception>
        </member>
        <member name="M:System.AggregateException.GetBaseException">
            <summary>
            Returns the <see cref="T:System.AggregateException"/> that is the root cause of this exception.
            </summary>
        </member>
        <member name="M:System.AggregateException.Handle(System.Func{System.Exception,System.Boolean})">
            <summary>
            Invokes a handler on each <see cref="T:System.Exception"/> contained by this <see cref="T:System.AggregateException"/>.
            </summary>
            <param name="predicate">The predicate to execute for each exception. The predicate accepts as an
            argument the <see cref="T:System.Exception"/> to be processed and returns a Boolean to indicate
            whether the exception was handled.</param>
            <remarks>
            Each invocation of the <paramref name="predicate"/> returns true or false to indicate whether the
            <see cref="T:System.Exception"/> was handled. After all invocations, if any exceptions went
            unhandled, all unhandled exceptions will be put into a new <see cref="T:System.AggregateException"/>
            which will be thrown. Otherwise, the <see cref="M:System.AggregateException.Handle(System.Func{System.Exception,System.Boolean})"/> method simply returns. If any
            invocations of the <paramref name="predicate"/> throws an exception, it will halt the processing
            of any more exceptions and immediately propagate the thrown exception as-is.
            </remarks>
            <exception cref="T:System.AggregateException">An exception contained by this <see cref="T:System.AggregateException"/> was not handled.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="predicate"/> argument is
            null.</exception>
        </member>
        <member name="M:System.AggregateException.Flatten">
            <summary>
            Flattens an <see cref="T:System.AggregateException"/> instances into a single, new instance.
            </summary>
            <returns>A new, flattened <see cref="T:System.AggregateException"/>.</returns>
            <remarks>
            If any inner exceptions are themselves instances of
            <see cref="T:System.AggregateException"/>, this method will recursively flatten all of them. The
            inner exceptions returned in the new <see cref="T:System.AggregateException"/>
            will be the union of all of the the inner exceptions from exception tree rooted at the provided
            <see cref="T:System.AggregateException"/> instance.
            </remarks>
        </member>
        <member name="M:System.AggregateException.ToString">
            <summary>
            Creates and returns a string representation of the current <see cref="T:System.AggregateException"/>.
            </summary>
            <returns>A string representation of the current exception.</returns>
        </member>
        <member name="P:System.AggregateException.InnerExceptions">
            <summary>
            Gets a read-only collection of the <see cref="T:System.Exception"/> instances that caused the
            current exception.
            </summary>
        </member>
        <member name="T:System.Threading.CancellationToken">
            <summary>
            Propogates notification that operations should be canceled.
            </summary>
            <remarks>
            <para>
            A <see cref="T:System.Threading.CancellationToken"/> may be created directly in an unchangeable canceled or non-canceled state
            using the CancellationToken's constructors. However, to have a CancellationToken that can change 
            from a non-canceled to a canceled state, 
            <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> must be used.
            CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its 
            <see cref="P:System.Threading.CancellationTokenSource.Token">Token</see> property. 
            </para>
            <para>
            Once canceled, a token may not transition to a non-canceled state, and a token whose 
            <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> is false will never change to one that can be canceled.
            </para>
            <para>
            All members of this struct are thread-safe and may be used concurrently from multiple threads.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.CancellationToken.#ctor(System.Threading.CancellationTokenSource)">
            <summary>
            Internal constructor only a CancellationTokenSource should create a CancellationToken
            </summary>
        </member>
        <member name="M:System.Threading.CancellationToken.#ctor(System.Boolean)">
            <summary>
            Initializes the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            </summary>
            <param name="canceled">
            The canceled state for the token.
            </param>
            <remarks>
            Tokens created with this constructor will remain in the canceled state specified
            by the <paramref name="canceled"/> parameter.  If <paramref name="canceled"/> is false,
            both <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> and <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will be false.
            If <paramref name="canceled"/> is true,
            both <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> and <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will be true. 
            </remarks>
        </member>
        <member name="M:System.Threading.CancellationToken.Register(System.Action)">
            <summary>
            Registers a delegate that will be called when this <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
            </summary>
            <remarks>
            <para>
            If this token is already in the canceled state, the
            delegate will be run immediately and synchronously. Any exception the delegate generates will be
            propogated out of this method call.
            </para>
            <para>
            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
            along with the delegate and will be used when executing it.
            </para>
            </remarks>
            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
            be used to deregister the callback.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.Register(System.Action,System.Boolean)">
            <summary>
            Registers a delegate that will be called when this 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
            </summary>
            <remarks>
            <para>
            If this token is already in the canceled state, the
            delegate will be run immediately and synchronously. Any exception the delegate generates will be
            propogated out of this method call.
            </para>
            <para>
            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
            along with the delegate and will be used when executing it.
            </para>
            </remarks>
            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
            <param name="useSynchronizationContext">A Boolean value that indicates whether to capture
            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see> and use it
            when invoking the <paramref name="callback"/>.</param>
            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
            be used to deregister the callback.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.Register(System.Action{System.Object},System.Object)">
            <summary>
            Registers a delegate that will be called when this 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
            </summary>
            <remarks>
            <para>
            If this token is already in the canceled state, the
            delegate will be run immediately and synchronously. Any exception the delegate generates will be
            propogated out of this method call.
            </para>
            <para>
            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
            along with the delegate and will be used when executing it.
            </para>
            </remarks>
            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
            <param name="state">The state to pass to the <paramref name="callback"/> when the delegate is invoked.  This may be null.</param>
            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
            be used to deregister the callback.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.Register(System.Action{System.Object},System.Object,System.Boolean)">
            <summary>
            Registers a delegate that will be called when this 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
            </summary>
            <remarks>
            <para>
            If this token is already in the canceled state, the
            delegate will be run immediately and synchronously. Any exception the delegate generates will be
            propogated out of this method call.
            </para>
            <para>
            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, 
            will be captured along with the delegate and will be used when executing it.
            </para>
            </remarks>
            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
            <param name="state">The state to pass to the <paramref name="callback"/> when the delegate is invoked.  This may be null.</param>
            <param name="useSynchronizationContext">A Boolean value that indicates whether to capture
            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see> and use it
            when invoking the <paramref name="callback"/>.</param>
            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
            be used to deregister the callback.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.Equals(System.Threading.CancellationToken)">
            <summary>
            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
            specified token.
            </summary>
            <param name="other">The other <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to which to compare this
            instance.</param>
            <returns>True if the instances are equal; otherwise, false. Two tokens are equal if they are associated
            with the same <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> or if they were both constructed 
            from public CancellationToken constructors and their <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> values are equal.</returns>
        </member>
        <member name="M:System.Threading.CancellationToken.Equals(System.Object)">
            <summary>
            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
            specified <see cref="T:System.Object"/>.
            </summary>
            <param name="other">The other object to which to compare this instance.</param>
            <returns>True if <paramref name="other"/> is a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated
            with the same <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> or if they were both constructed 
            from public CancellationToken constructors and their <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> values are equal.</returns>
            <exception cref="T:System.ObjectDisposedException">An associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.GetHashCode">
            <summary>
            Serves as a hash function for a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            </summary>
            <returns>A hash code for the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance.</returns>
        </member>
        <member name="M:System.Threading.CancellationToken.op_Equality(System.Threading.CancellationToken,System.Threading.CancellationToken)">
            <summary>
            Determines whether two <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances are equal.
            </summary>
            <param name="left">The first instance.</param>
            <param name="right">The second instance.</param>
            <returns>True if the instances are equal; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">An associated <see
            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.op_Inequality(System.Threading.CancellationToken,System.Threading.CancellationToken)">
            <summary>
            Determines whether two <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances are not equal.
            </summary>
            <param name="left">The first instance.</param>
            <param name="right">The second instance.</param>
            <returns>True if the instances are not equal; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">An associated <see
            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationToken.ThrowIfCancellationRequested">
            <summary>
            Throws a <see cref="T:System.OperationCanceledException">OperationCanceledException</see> if
            this token has had cancellation requested.
            </summary>
            <remarks>
            This method provides functionality equivalent to:
            <code>
            if (token.IsCancellationRequested) 
               throw new OperationCanceledException(token);
            </code>
            </remarks>
            <exception cref="T:System.OperationCanceledException">The token has had cancellation requested.</exception>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="P:System.Threading.CancellationToken.None">
            <summary>
            Returns an empty CancellationToken value.
            </summary>
            <remarks>
            The <see cref="T:System.Threading.CancellationToken"/> value returned by this property will be non-cancelable by default.
            </remarks>
        </member>
        <member name="P:System.Threading.CancellationToken.IsCancellationRequested">
            <summary>
            Gets whether cancellation has been requested for this token.
            </summary>
            <value>Whether cancellation has been requested for this token.</value>
            <remarks>
            <para>
            This property indicates whether cancellation has been requested for this token, 
            either through the token initially being construted in a canceled state, or through
            calling <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see> 
            on the token's associated <see cref="T:System.Threading.CancellationTokenSource"/>.
            </para>
            <para>
            If this property is true, it only guarantees that cancellation has been requested.  
            It does not guarantee that every registered handler
            has finished executing, nor that cancellation requests have finished propagating
            to all registered handlers.  Additional synchronization may be required,
            particularly in situations where related objects are being canceled concurrently.
            </para>
            </remarks>
        </member>
        <member name="P:System.Threading.CancellationToken.CanBeCanceled">
            <summary>
            Gets whether this token is capable of being in the canceled state.
            </summary>
            <remarks>
            If CanBeCanceled returns false, it is guaranteed that the token will never transition
            into a canceled state, meaning that <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will never
            return true.
            </remarks>
        </member>
        <member name="P:System.Threading.CancellationToken.WaitHandle">
            <summary>
            Gets a <see cref="T:System.Threading.WaitHandle"/> that is signaled when the token is canceled.</summary>
            <remarks>
            Accessing this property causes a <see cref="T:System.Threading.WaitHandle">WaitHandle</see>
            to be instantiated.  It is preferable to only use this property when necessary, and to then
            dispose the associated <see cref="T:System.Threading.CancellationTokenSource"/> instance at the earliest opportunity (disposing
            the source will dispose of this allocated handle).  The handle should not be closed or disposed directly.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
        </member>
        <member name="T:System.Threading.CancellationTokenRegistration">
            <summary>
            Represents a callback delegate that has been registered with a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            </summary>
            <remarks>
            To unregister a callback, dispose the corresponding Registration instance.
            </remarks>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.TryDeregister">
            <summary>
            Attempts to deregister the item. If it's already being run, this may fail.
            Entails a full memory fence.
            </summary>
            <returns>True if the callback was found and deregistered, false otherwise.</returns>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.Dispose">
            <summary>
            Disposes of the registration and unregisters the target callback from the associated 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            If the target callback is currently executing this method will wait until it completes, except
            in the degenerate cases where a callback method deregisters itself.
            </summary>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.op_Equality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)">
            <summary>
            Determines whether two <see
            cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see>
            instances are equal.
            </summary>
            <param name="left">The first instance.</param>
            <param name="right">The second instance.</param>
            <returns>True if the instances are equal; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.op_Inequality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)">
            <summary>
            Determines whether two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are not equal.
            </summary>
            <param name="left">The first instance.</param>
            <param name="right">The second instance.</param>
            <returns>True if the instances are not equal; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.Equals(System.Object)">
            <summary>
            Determines whether the current <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instance is equal to the 
            specified <see cref="T:System.Object"/>.
            </summary> 
            <param name="obj">The other object to which to compare this instance.</param>
            <returns>True, if both this and <paramref name="obj"/> are equal. False, otherwise.
            Two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are equal if
            they both refer to the output of a single call to the same Register method of a 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>. 
            </returns>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.Equals(System.Threading.CancellationTokenRegistration)">
            <summary>
            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
            specified <see cref="T:System.Object"/>.
            </summary> 
            <param name="other">The other <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> to which to compare this instance.</param>
            <returns>True, if both this and <paramref name="other"/> are equal. False, otherwise.
            Two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are equal if
            they both refer to the output of a single call to the same Register method of a 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>. 
            </returns>
        </member>
        <member name="M:System.Threading.CancellationTokenRegistration.GetHashCode">
            <summary>
            Serves as a hash function for a <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration.</see>.
            </summary>
            <returns>A hash code for the current <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instance.</returns>
        </member>
        <member name="T:System.Threading.CancellationTokenSource">
            <summary>
            Signals to a <see cref="T:System.Threading.CancellationToken"/> that it should be canceled.
            </summary>
            <remarks>
            <para>
            <see cref="T:System.Threading.CancellationTokenSource"/> is used to instantiate a <see cref="T:System.Threading.CancellationToken"/>
            (via the source's <see cref="P:System.Threading.CancellationTokenSource.Token">Token</see> property)
            that can be handed to operations that wish to be notified of cancellation or that can be used to
            register asynchronous operations for cancellation. That token may have cancellation requested by
            calling to the source's <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see>
            method.
            </para>
            <para>
            All members of this class, except <see cref="M:System.Threading.CancellationTokenSource.Dispose">Dispose</see>, are thread-safe and may be used
            concurrently from multiple threads.
            </para>
            </remarks>
        </member>
        <member name="F:System.Threading.CancellationTokenSource.m_threadIDExecutingCallbacks">
            The ID of the thread currently executing the main body of CTS.Cancel()
            this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback.
            This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to 
            actually run the callbacks.
        </member>
        <member name="M:System.Threading.CancellationTokenSource.#ctor">
            <summary>
            Initializes the <see cref="T:System.Threading.CancellationTokenSource"/>.
            </summary>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.Cancel">
            <summary>
            Communicates a request for cancellation.
            </summary>
            <remarks>
            <para>
            The associated <see cref="T:System.Threading.CancellationToken"/> will be
            notified of the cancellation and will transition to a state where 
            <see cref="P:System.Threading.CancellationToken.IsCancellationRequested">IsCancellationRequested</see> returns true. 
            Any callbacks or cancelable operations
            registered with the <see cref="T:System.Threading.CancellationToken"/>  will be executed.
            </para>
            <para>
            Cancelable operations and callbacks registered with the token should not throw exceptions.
            However, this overload of Cancel will aggregate any exceptions thrown into a <see cref="T:System.AggregateException"/>,
            such that one callback throwing an exception will not prevent other registered callbacks from being executed.
            </para>
            <para>
            The <see cref="T:System.Threading.ExecutionContext"/> that was captured when each callback was registered
            will be reestablished when the callback is invoked.
            </para>
            </remarks>
            <exception cref="T:System.AggregateException">An aggregate exception containing all the exceptions thrown
            by the registered callbacks on the associated <see cref="T:System.Threading.CancellationToken"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">This <see cref="T:System.Threading.CancellationTokenSource"/> has been disposed.</exception> 
        </member>
        <member name="M:System.Threading.CancellationTokenSource.Cancel(System.Boolean)">
            <summary>
            Communicates a request for cancellation.
            </summary>
            <remarks>
            <para>
            The associated <see cref="T:System.Threading.CancellationToken"/> will be
            notified of the cancellation and will transition to a state where 
            <see cref="P:System.Threading.CancellationToken.IsCancellationRequested">IsCancellationRequested</see> returns true. 
            Any callbacks or cancelable operations
            registered with the <see cref="T:System.Threading.CancellationToken"/>  will be executed.
            </para>
            <para>
            Cancelable operations and callbacks registered with the token should not throw exceptions. 
            If <paramref name="throwOnFirstException"/> is true, an exception will immediately propagate out of the
            call to Cancel, preventing the remaining callbacks and cancelable operations from being processed.
            If <paramref name="throwOnFirstException"/> is false, this overload will aggregate any 
            exceptions thrown into a <see cref="T:System.AggregateException"/>,
            such that one callback throwing an exception will not prevent other registered callbacks from being executed.
            </para>
            <para>
            The <see cref="T:System.Threading.ExecutionContext"/> that was captured when each callback was registered
            will be reestablished when the callback is invoked.
            </para>
            </remarks>
            <param name="throwOnFirstException">Specifies whether exceptions should immediately propagate.</param>
            <exception cref="T:System.AggregateException">An aggregate exception containing all the exceptions thrown
            by the registered callbacks on the associated <see cref="T:System.Threading.CancellationToken"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">This <see cref="T:System.Threading.CancellationTokenSource"/> has been disposed.</exception> 
        </member>
        <member name="M:System.Threading.CancellationTokenSource.Dispose">
            <summary>
            Releases the resources used by this <see cref="T:System.Threading.CancellationTokenSource" />.
            </summary>
            <remarks>
            This method is not thread-safe for any other concurrent calls.
            </remarks>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.ThrowIfDisposed">
            <summary>
            Throws an exception if the source has been disposed.
            </summary>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.InternalGetStaticSource(System.Boolean)">
            <summary>
            InternalGetStaticSource()
            </summary>
            <param name="set">Whether the source should be set.</param>
            <returns>A static source to be shared among multiple tokens.</returns>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.InternalRegister(System.Action{System.Object},System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext)">
            <summary>
            Registers a callback object. If cancellation has already occurred, the
            callback will have been run by the time this method returns.
            </summary>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.NotifyCancellation(System.Boolean)">
            <summary>
            
            </summary>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(System.Boolean)">
            <summary>
            Invoke the Canceled event.
            </summary>
            <remarks>
            The handlers are invoked synchronously in LIFO order.
            </remarks>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken,System.Threading.CancellationToken)">
            <summary>
            Creates a <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that will be in the canceled state
            when any of the source tokens are in the canceled state.
            </summary>
            <param name="token1">The first <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to observe.</param>
            <param name="token2">The second <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to observe.</param>
            <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked 
            to the source tokens.</returns>
            <exception cref="T:System.ObjectDisposedException">A <see
            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
            one of the source tokens has been disposed.</exception>
        </member>
        <member name="M:System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken[])">
            <summary>
            Creates a <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that will be in the canceled state
            when any of the source tokens are in the canceled state.
            </summary>
            <param name="tokens">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances to observe.</param>
            <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked 
            to the source tokens.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="tokens"/> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">A <see
            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
            one of the source tokens has been disposed.</exception>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.IsCancellationRequested">
            <summary>
            Gets whether cancellation has been requested for this <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see>.
            </summary>
            <value>Whether cancellation has been requested for this <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see>.</value>
            <remarks>
            <para>
            This property indicates whether cancellation has been requested for this token source, such as
            due to a call to its
            <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see> method.
            </para>
            <para>
            If this property returns true, it only guarantees that cancellation has been requested. It does not
            guarantee that every handler registered with the corresponding token has finished executing, nor
            that cancellation requests have finished propagating to all registered handlers. Additional
            synchronization may be required, particularly in situations where related objects are being
            canceled concurrently.
            </para>
            </remarks>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.IsCancellationCompleted">
            <summary>
            A simple helper to determine whether cancellation has finished.
            </summary>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.IsDisposed">
            <summary>
            A simple helper to determine whether disposal has occured.
            </summary>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.ThreadIDExecutingCallbacks">
            <summary>
            The ID of the thread that is running callbacks.
            </summary>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.Token">
            <summary>
            Gets the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            associated with this <see cref="T:System.Threading.CancellationTokenSource"/>.
            </summary>
            <value>The <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            associated with this <see cref="T:System.Threading.CancellationTokenSource"/>.</value>
            <exception cref="T:System.ObjectDisposedException">The token source has been
            disposed.</exception>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.CanBeCanceled">
             <summary>
            
             </summary>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.WaitHandle">
             <summary>
            
             </summary>
        </member>
        <member name="P:System.Threading.CancellationTokenSource.ExecutingCallback">
            <summary>
            The currently executing callback
            </summary>
        </member>
        <member name="T:System.Threading.CancellationCallbackInfo">
            <summary>
            A helper class for collating the various bits of information required to execute 
            cancellation callbacks.
            </summary>
        </member>
        <member name="M:System.Threading.CancellationCallbackInfo.ExecuteCallback">
            <summary>
            InternalExecuteCallbackSynchronously_GeneralPath
            This will be called on the target synchronization context, however, we still need to restore the required execution context
            </summary>
        </member>
        <member name="T:System.Threading.SparselyPopulatedArray`1">
            <summary>
            A sparsely populated array.  Elements can be sparse and some null, but this allows for
            lock-free additions and growth, and also for constant time removal (by nulling out).
            </summary>
            <typeparam name="T">The kind of elements contained within.</typeparam>
        </member>
        <member name="M:System.Threading.SparselyPopulatedArray`1.#ctor(System.Int32)">
            <summary>
            Allocates a new array with the given initial size.
            </summary>
            <param name="initialSize">How many array slots to pre-allocate.</param>
        </member>
        <member name="M:System.Threading.SparselyPopulatedArray`1.Add(`0)">
            <summary>
            Adds an element in the first available slot, beginning the search from the tail-to-head.
            If no slots are available, the array is grown.  The method doesn't return until successful.
            </summary>
            <param name="element">The element to add.</param>
            <returns>Information about where the add happened, to enable O(1) deregistration.</returns>
        </member>
        <member name="P:System.Threading.SparselyPopulatedArray`1.Head">
            <summary>
            The head of the doubly linked list.
            </summary>
        </member>
        <member name="P:System.Threading.SparselyPopulatedArray`1.Tail">
            <summary>
            The tail of the doubly linked list.
            </summary>
        </member>
        <member name="T:System.Threading.SparselyPopulatedArrayAddInfo`1">
            <summary>
            A struct to hold a link to the exact spot in an array an element was inserted, enabling
            constant time removal later on.
            </summary>
        </member>
        <member name="T:System.Threading.SparselyPopulatedArrayFragment`1">
            <summary>
            A fragment of a sparsely populated array, doubly linked.
            </summary>
            <typeparam name="T">The kind of elements contained within.</typeparam>
        </member>
        <member name="T:System.Threading.CountdownEvent">
            <summary>
            Represents a synchronization primitive that is signaled when its count reaches zero.
            </summary>
            <remarks>
            All public and protected members of <see cref="T:System.Threading.CountdownEvent"/> are thread-safe and may be used
            concurrently from multiple threads, with the exception of Dispose, which
            must only be used when all other operations on the <see cref="T:System.Threading.CountdownEvent"/> have
            completed, and Reset, which should only be used when no other threads are
            accessing the event.
            </remarks>
        </member>
        <member name="M:System.Threading.CountdownEvent.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:System.Threading.CountdownEvent"/> class with the
            specified count.
            </summary>
            <param name="initialCount">The number of signals required to set the <see
            cref="T:System.Threading.CountdownEvent"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="initialCount"/> is less
            than 0.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Dispose">
            <summary>
            Releases all resources used by the current instance of <see cref="T:System.Threading.CountdownEvent"/>.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, <see cref="M:System.Threading.CountdownEvent.Dispose"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.CountdownEvent.Dispose(System.Boolean)">
            <summary>
            When overridden in a derived class, releases the unmanaged resources used by the
            <see cref="T:System.Threading.CountdownEvent"/>, and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release
            only unmanaged resources.</param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, <see cref="M:System.Threading.CountdownEvent.Dispose"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.CountdownEvent.Signal">
            <summary>
            Registers a signal with the <see cref="T:System.Threading.CountdownEvent"/>, decrementing its
            count.
            </summary>
            <returns>true if the signal caused the count to reach zero and the event was set; otherwise,
            false.</returns>
            <exception cref="T:System.InvalidOperationException">The current instance is already set.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Signal(System.Int32)">
            <summary>
            Registers multiple signals with the <see cref="T:System.Threading.CountdownEvent"/>,
            decrementing its count by the specified amount.
            </summary>
            <param name="signalCount">The number of signals to register.</param>
            <returns>true if the signals caused the count to reach zero and the event was set; otherwise,
            false.</returns>
            <exception cref="T:System.InvalidOperationException">
            The current instance is already set. -or- Or <paramref name="signalCount"/> is greater than <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less
            than 1.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.AddCount">
            <summary>
            Increments the <see cref="T:System.Threading.CountdownEvent"/>'s current count by one.
            </summary>
            <exception cref="T:System.InvalidOperationException">The current instance is already
            set.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">
            The current instance has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.TryAddCount">
            <summary>
            Attempts to increment the <see cref="T:System.Threading.CountdownEvent"/>'s current count by one.
            </summary>
            <returns>true if the increment succeeded; otherwise, false. If <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is
            already at zero. this will return false.</returns>
            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.AddCount(System.Int32)">
            <summary>
            Increments the <see cref="T:System.Threading.CountdownEvent"/>'s current count by a specified
            value.
            </summary>
            <param name="signalCount">The value by which to increase <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less than
            0.</exception>
            <exception cref="T:System.InvalidOperationException">The current instance is already
            set.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.TryAddCount(System.Int32)">
            <summary>
            Attempts to increment the <see cref="T:System.Threading.CountdownEvent"/>'s current count by a
            specified value.
            </summary>
            <param name="signalCount">The value by which to increase <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.</param>
            <returns>true if the increment succeeded; otherwise, false. If <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is
            already at zero this will return false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less
            than 0.</exception>
            <exception cref="T:System.InvalidOperationException">The current instance is already
            set.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Reset">
            <summary>
            Resets the <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> to the value of <see cref="P:System.Threading.CountdownEvent.InitialCount"/>.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, Reset is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed..</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Reset(System.Int32)">
            <summary>
            Resets the <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> to a specified value.
            </summary>
            <param name="count">The number of signals required to set the <see cref="T:System.Threading.CountdownEvent"/>.</param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, Reset is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="count"/> is
            less than 0.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has alread been disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set.
            </summary>
            <remarks>
            The caller of this method blocks indefinitely until the current instance is set. The caller will
            return immediately if the event is currently in a set state.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait(System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, while
            observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <remarks>
            The caller of this method blocks indefinitely until the current instance is set. The caller will
            return immediately if the event is currently in a set state.  If the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> being observed
            is canceled during the wait operation, an <see cref="T:System.OperationCanceledException"/>
            will be thrown.
            </remarks>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
            canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait(System.TimeSpan)">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
            <see cref="T:System.TimeSpan"/> to measure the time interval.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
            wait indefinitely.</param>
            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using
            a <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a
            <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
            wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has
            been canceled.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait(System.Int32)">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
            32-bit signed integer to measure the time interval.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.Wait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
            32-bit signed integer to measure the time interval, while observing a
            <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has
            been canceled.</exception>
        </member>
        <member name="M:System.Threading.CountdownEvent.ThrowIfDisposed">
            <summary>
            Throws an exception if the latch has been disposed.
            </summary>
        </member>
        <member name="P:System.Threading.CountdownEvent.CurrentCount">
            <summary>
            Gets the number of remaining signals required to set the event.
            </summary>
            <value>
            The number of remaining signals required to set the event.
            </value>
        </member>
        <member name="P:System.Threading.CountdownEvent.InitialCount">
            <summary>
            Gets the numbers of signals initially required to set the event.
            </summary>
            <value>
            The number of signals initially required to set the event.
            </value>
        </member>
        <member name="P:System.Threading.CountdownEvent.IsSet">
            <summary>
            Determines whether the event is set.
            </summary>
            <value>true if the event is set; otherwise, false.</value>
        </member>
        <member name="P:System.Threading.CountdownEvent.WaitHandle">
            <summary>
            Gets a <see cref="T:System.Threading.WaitHandle"/> that is used to wait for the event to be set. 
            </summary>
            <value>A <see cref="T:System.Threading.WaitHandle"/> that is used to wait for the event to be set.</value>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been disposed.</exception>
            <remarks>
            <see cref="P:System.Threading.CountdownEvent.WaitHandle"/> should only be used if it's needed for integration with code bases
            that rely on having a WaitHandle.  If all that's needed is to wait for the <see cref="T:System.Threading.CountdownEvent"/>
            to be set, the <see cref="M:System.Threading.CountdownEvent.Wait"/> method should be preferred.
            </remarks>
        </member>
        <member name="T:System.Threading.ManualResetEventSlim">
            <summary>
            Provides a slimmed down version of <see cref="T:System.Threading.ManualResetEvent"/>.
            </summary>
            <remarks>
            All public and protected members of <see cref="T:System.Threading.ManualResetEventSlim"/> are thread-safe and may be used
            concurrently from multiple threads, with the exception of Dispose, which
            must only be used when all other operations on the <see cref="T:System.Threading.ManualResetEventSlim"/> have
            completed, and Reset, which should only be used when no other threads are
            accessing the event.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
            class with an initial state of nonsignaled.
            </summary>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
            class with a Boolen value indicating whether to set the intial state to signaled.
            </summary>
            <param name="initialState">true to set the initial state signaled; false to set the initial state
            to nonsignaled.</param>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.#ctor(System.Boolean,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
            class with a Boolen value indicating whether to set the intial state to signaled and a specified
            spin count.
            </summary>
            <param name="initialState">true to set the initial state to signaled; false to set the initial state
            to nonsignaled.</param>
            <param name="spinCount">The number of spin waits that will occur before falling back to a true
            wait.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="spinCount"/> is less than
            0 or greater than the maximum allowed value.</exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Initialize(System.Boolean,System.Int32)">
            <summary>
            Initializes the internal state of the event.
            </summary>
            <param name="initialState">Whether the event is set initially or not.</param>
            <param name="spinCount">The spin count that decides when the event will block.</param>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.EnsureLockObjectCreated">
            <summary>
            Helper to ensure the lock object is created before first use.
            </summary>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.LazyInitializeEvent">
            <summary>
            This method lazily initializes the event object. It uses CAS to guarantee that
            many threads racing to call this at once don't result in more than one event
            being stored and used. The event will be signaled or unsignaled depending on
            the state of the thin-event itself, with synchronization taken into account.
            </summary>
            <returns>True if a new event was created and stored, false otherwise.</returns>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Set">
            <summary>
            Sets the state of the event to signaled, which allows one or more threads waiting on the event to
            proceed.
            </summary>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Set(System.Boolean)">
            <summary>
            Private helper to actually perform the Set.
            </summary>
            <param name="duringCancellation">Indicates whether we are calling Set() during cancellation.</param>
            <exception cref="T:System.OperationCanceledException">The object has been canceled.</exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Reset">
            <summary>
            Sets the state of the event to nonsignaled, which causes threads to block.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Reset"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
            <remarks>
            The caller of this method blocks indefinitely until the current instance is set. The caller will
            return immediately if the event is currently in a set state.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> receives a signal,
            while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
            <exception cref="T:System.OperationCanceledExcepton"><paramref name="cancellationToken"/> was
            canceled.</exception>
            <remarks>
            The caller of this method blocks indefinitely until the current instance is set. The caller will
            return immediately if the event is currently in a set state.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.TimeSpan)">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
            <see cref="T:System.TimeSpan"/> to measure the time interval.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
            <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.Threading.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Int32)">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
            32-bit signed integer to measure the time interval.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
            32-bit signed integer to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
            false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">
            The maximum number of waiters has been exceeded.
            </exception>
            <exception cref="T:System.Threading.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Dispose">
            <summary>
            Releases all resources used by the current instance of <see cref="T:System.Threading.ManualResetEventSlim"/>.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Dispose"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.Dispose(System.Boolean)">
            <summary>
            When overridden in a derived class, releases the unmanaged resources used by the 
            <see cref="T:System.Threading.ManualResetEventSlim"/>, and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources;
            false to release only unmanaged resources.</param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Dispose(System.Boolean)"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.ThrowIfDisposed">
            <summary>
            Throw ObjectDisposedException if the MRES is disposed
            </summary>
        </member>
        <member name="F:System.Threading.ManualResetEventSlim.s_cancellationTokenCallback">
            <summary>
            Private helper method to wake up waiters when a cancellationToken gets canceled.
            </summary>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.UpdateStateAtomically(System.Int32,System.Int32)">
            <summary>
            Private helper method for updating parts of a bit-string state value.
            Mainly called from the IsSet and Waiters properties setters
            </summary>
            <remarks>
            Note: the parameter types must be int as CompareExchange cannot take a Uint
            </remarks>
            <param name="newBits">The new value</param>
            <param name="updateBitsMask">The mask used to set the bits</param>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.ExtractStatePortionAndShiftRight(System.Int32,System.Int32,System.Int32)">
            <summary>
            Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word.
            eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer 
            
            ?? is there a common place to put this rather than being private to MRES?
            </summary>
            <param name="state"></param>
            <param name="mask"></param>
            <param name="rightBitShiftCount"></param>
            <returns></returns>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.ExtractStatePortion(System.Int32,System.Int32)">
            <summary>
            Performs a Mask operation, but does not perform the shift.
            This is acceptable for boolean values for which the shift is unnecessary
            eg (val &amp; Mask) != 0 is an appropriate way to extract a boolean rather than using
            ((val &amp; Mask) &gt;&gt; shiftAmount) == 1
            
            ?? is there a common place to put this rather than being private to MRES?
            </summary>
            <param name="state"></param>
            <param name="mask"></param>
        </member>
        <member name="M:System.Threading.ManualResetEventSlim.UpdateTimeOut(System.Int64,System.Int32)">
            <summary>
            Helper function to measure and update the wait time
            </summary>
            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started.</param>
            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds.</param>
            <returns>The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters
            has occurred.</returns>
        </member>
        <member name="P:System.Threading.ManualResetEventSlim.WaitHandle">
            <summary>
            Gets the underlying <see cref="T:System.Threading.WaitHandle"/> object for this <see cref="T:System.Threading.ManualResetEventSlim"/>.
            </summary>
            <value>The underlying <see cref="T:System.Threading.WaitHandle"/> event object fore this <see cref="T:System.Threading.ManualResetEventSlim"/>.</value>
            <remarks>
            Accessing this property forces initialization of an underlying event object if one hasn't
            already been created.  To simply wait on this <see cref="T:System.Threading.ManualResetEventSlim"/>, 
            the public Wait methods should be preferred.
            </remarks>
        </member>
        <member name="P:System.Threading.ManualResetEventSlim.IsSet">
            <summary>
            Gets whether the event is set.
            </summary>
            <value>true if the event has is set; otherwise, false.</value>
        </member>
        <member name="P:System.Threading.ManualResetEventSlim.SpinCount">
            <summary>
            Gets the number of spin waits that will be occur before falling back to a true wait.
            </summary>
        </member>
        <member name="P:System.Threading.ManualResetEventSlim.Waiters">
            <summary>
            How many threads are waiting.
            </summary>
        </member>
        <member name="T:System.Lazy`1">
            <summary>
            Provides support for lazy initialization.
            </summary>
            <typeparam name="T">Specifies the type of element being laziliy initialized.</typeparam>
            <remarks>
            <para>
            By default, all public and protected members of <see cref="T:System.Lazy`1"/> are thread-safe and may be used
            concurrently from multiple threads.  These thread-safety guarantees may be removed optionally and per instance
            using parameters to the type's constructors.
            </para>
            </remarks>
        </member>
        <member name="M:System.Lazy`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class that 
            uses <typeparamref name="T"/>'s default constructor for lazy initialization.
            </summary>
            <remarks>
            An instance created with this constructor may be used concurrently from multiple threads.
            </remarks>
        </member>
        <member name="M:System.Lazy`1.#ctor(System.Func{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class that uses a
            specified initialization function.
            </summary>
            <param name="valueFactory">
            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is
            needed.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is a null
            reference (Nothing in Visual Basic).</exception>
            <remarks>
            An instance created with this constructor may be used concurrently from multiple threads.
            </remarks>
        </member>
        <member name="M:System.Lazy`1.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/>
            class that uses <typeparamref name="T"/>'s default constructor and a specified thread-safety mode.
            </summary>
            <param name="isThreadSafe">true if this instance should be usable by multiple threads concurrently; false if the instance will only be used by one thread at a time.
            </param>
        </member>
        <member name="M:System.Lazy`1.#ctor(System.Threading.LazyThreadSafetyMode)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/>
            class that uses <typeparamref name="T"/>'s default constructor and a specified thread-safety mode.
            </summary>
            <param name="mode">The lazy thread-safety mode mode</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> mode contains an invalid valuee</exception>
        </member>
        <member name="M:System.Lazy`1.#ctor(System.Func{`0},System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class
            that uses a specified initialization function and a specified thread-safety mode.
            </summary>
            <param name="valueFactory">
            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is needed.
            </param>
            <param name="isThreadSafe">true if this instance should be usable by multiple threads concurrently; false if the instance will only be used by one thread at a time.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is
            a null reference (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Lazy`1.#ctor(System.Func{`0},System.Threading.LazyThreadSafetyMode)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class
            that uses a specified initialization function and a specified thread-safety mode.
            </summary>
            <param name="valueFactory">
            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is needed.
            </param>
            <param name="mode">The lazy thread-safety mode.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is
            a null reference (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> mode contains an invalid value.</exception>
        </member>
        <member name="M:System.Lazy`1.GetObjectFromMode(System.Threading.LazyThreadSafetyMode)">
            <summary>
            Static helper function that returns an object based on the given mode. it also throws an exception if the mode is invalid
            </summary>
        </member>
        <member name="M:System.Lazy`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary>Forces initialization during serialization.</summary>
            <param name="context">The StreamingContext for the serialization operation.</param>
        </member>
        <member name="M:System.Lazy`1.ToString">
            <summary>Creates and returns a string representation of this instance.</summary>
            <returns>The result of calling <see cref="M:System.Object.ToString"/> on the <see cref="P:System.Lazy`1.Value"/>.</returns>
            <exception cref="T:System.NullReferenceException">
            The <see cref="P:System.Lazy`1.Value"/> is null.
            </exception>
        </member>
        <member name="M:System.Lazy`1.LazyInitValue">
            <summary>
            local helper method to initialize the value 
            </summary>
            <returns>The inititialized T value</returns>
        </member>
        <member name="M:System.Lazy`1.CreateValue">
            <summary>Creates an instance of T using m_valueFactory in case its not null or use reflection to create a new T()</summary>
            <returns>An instance of Boxed.</returns>
        </member>
        <member name="P:System.Lazy`1.ValueForDebugDisplay">
            <summary>Gets the value of the Lazy&lt;T&gt; for debugging display purposes.</summary>
        </member>
        <member name="P:System.Lazy`1.Mode">
            <summary>
            Gets a value indicating whether this instance may be used concurrently from multiple threads.
            </summary>
        </member>
        <member name="P:System.Lazy`1.IsValueFaulted">
            <summary>
            Gets whether the value creation is faulted or not
            </summary>
        </member>
        <member name="P:System.Lazy`1.IsValueCreated">
            <summary>Gets a value indicating whether the <see cref="T:System.Lazy{T}"/> has been initialized.
            </summary>
            <value>true if the <see cref="T:System.Lazy{T}"/> instance has been initialized;
            otherwise, false.</value>
            <remarks>
            The initialization of a <see cref="T:System.Lazy{T}"/> instance may result in either
            a value being produced or an exception being thrown.  If an exception goes unhandled during initialization, 
            <see cref="P:System.Lazy`1.IsValueCreated"/> will return false.
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "P:System.Lazy`1.Value" -->
        <member name="T:System.Lazy`1.Boxed">
            <summary>
            wrapper class to box the initialized value, this is mainly created to avoid boxing/unboxing the value each time the value is called in case T is 
            a value type
            </summary>
        </member>
        <member name="T:System.Lazy`1.LazyInternalExceptionHolder">
            <summary>
            Wrapper class to wrap the excpetion thrown by the value factory
            </summary>
        </member>
        <member name="T:System.System_LazyDebugView`1">
            <summary>A debugger view of the Lazy&lt;T&gt; to surface additional debugging properties and 
            to ensure that the Lazy&lt;T&gt; does not become initialized if it was not already.</summary>
        </member>
        <member name="M:System.System_LazyDebugView`1.#ctor(System.Lazy{`0})">
            <summary>Constructs a new debugger view object for the provided Lazy object.</summary>
            <param name="lazy">A Lazy object to browse in the debugger.</param>
        </member>
        <member name="P:System.System_LazyDebugView`1.IsValueCreated">
            <summary>Returns whether the Lazy object is initialized or not.</summary>
        </member>
        <member name="P:System.System_LazyDebugView`1.Value">
            <summary>Returns the value of the Lazy object.</summary>
        </member>
        <member name="P:System.System_LazyDebugView`1.Mode">
            <summary>Returns the execution mode of the Lazy object</summary>
        </member>
        <member name="P:System.System_LazyDebugView`1.IsValueFaulted">
            <summary>Returns the execution mode of the Lazy object</summary>
        </member>
        <member name="T:System.Threading.LazyThreadSafetyMode">
            <summary>
            Specifies how a <see cref="T:System.Threading.Lazy{T}"/> instance should synchronize access among multiple threads.
            </summary>
        </member>
        <member name="F:System.Threading.LazyThreadSafetyMode.None">
            <summary>
            This mode makes no guarantees around the thread-safety of the <see cref="T:System.Threading.Lazy{T}"/> instance.  If used from multiple threads, the behavior of the <see cref="T:System.Threading.Lazy{T}"/> is undefined.
            This mode should be used when a <see cref="T:System.Threading.Lazy{T}"/> is guaranteed to never be initialized from more than one thread simultaneously and high performance is crucial. 
            If valueFactory throws an exception when the <see cref="T:System.Threading.Lazy{T}"/> is initialized, the exception will be cached and returned on subsequent accesses to Value. Also, if valueFactory recursively
            accesses Value on this <see cref="T:System.Threading.Lazy{T}"/> instance, a <see cref="T:System.InvalidOperationException"/> will be thrown.
            </summary>
        </member>
        <member name="F:System.Threading.LazyThreadSafetyMode.PublicationOnly">
            <summary>
            When multiple threads attempt to simultaneously initialize a <see cref="T:System.Threading.Lazy{T}"/> instance, this mode allows each thread to execute the
            valueFactory but only the first thread to complete initialization will be allowed to set the final value of the  <see cref="T:System.Threading.Lazy{T}"/>.
            Once initialized successfully, any future calls to Value will return the cached result.  If valueFactory throws an exception on any thread, that exception will be
            propagated out of Value. If any thread executes valueFactory without throwing an exception and, therefore, successfully sets the value, that value will be returned on
            subsequent accesses to Value from any thread.  If no thread succeeds in setting the value, IsValueCreated will remain false and subsequent accesses to Value will result in
            the valueFactory delegate re-executing.  Also, if valueFactory recursively accesses Value on this  <see cref="T:System.Threading.Lazy{T}"/> instance, an exception will NOT be thrown.
            </summary>
        </member>
        <member name="F:System.Threading.LazyThreadSafetyMode.ExecutionAndPublication">
            <summary>
            This mode uses locks to ensure that only a single thread can initialize a <see cref="T:System.Threading.Lazy{T}"/> instance in a thread-safe manner.  In general,
            taken if this mode is used in conjunction with a <see cref="T:System.Threading.Lazy{T}"/> valueFactory delegate that uses locks internally, a deadlock can occur if not
            handled carefully.  If valueFactory throws an exception when the<see cref="T:System.Threading.Lazy{T}"/> is initialized, the exception will be cached and returned on
            subsequent accesses to Value. Also, if valueFactory recursively accesses Value on this <see cref="T:System.Threading.Lazy{T}"/> instance, a  <see cref="T:System.InvalidOperationException"/> will be thrown.
            </summary>
        </member>
        <member name="T:System.Threading.LazyInitializer">
            <summary>
            Provides lazy initialization routines.
            </summary>
            <remarks>
            These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using
            references to ensure targets have been initialized as they are accessed.
            </remarks>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@)">
            <summary>
            Initializes a target reference type with the type's default constructor if the target has not
            already been initialized.
            </summary>
            <typeparam name="T">The refence type of the reference to be initialized.</typeparam>
            <param name="target">A reference of type <typeparamref name="T"/> to initialize if it has not
            already been initialized.</param>
            <returns>The initialized reference of type <typeparamref name="T"/>.</returns>
            <exception cref="T:System.MissingMemberException">Type <typeparamref name="T"/> does not have a default
            constructor.</exception>
            <exception cref="T:System.MemberAccessException">
            Permissions to access the constructor of type <typeparamref name="T"/> were missing.
            </exception>
            <remarks>
            <para>
            This method may only be used on reference types. To ensure initialization of value
            types, see other overloads of EnsureInitialized.
            </para>
            <para>
            This method may be used concurrently by multiple threads to initialize <paramref name="target"/>.  
            In the event that multiple threads access this method concurrently, multiple instances of <typeparamref name="T"/>
            may be created, but only one will be stored into <paramref name="target"/>. In such an occurrence, this method will not dispose of the
            objects that were not stored.  If such objects must be disposed, it is up to the caller to determine 
            if an object was not used and to then dispose of the object appropriately.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Func{``0})">
            <summary>
            Initializes a target reference type using the specified function if it has not already been
            initialized.
            </summary>
            <typeparam name="T">The reference type of the reference to be initialized.</typeparam>
            <param name="target">The reference of type <typeparamref name="T"/> to initialize if it has not
            already been initialized.</param>
            <param name="valueFactory">The <see cref="T:System.Func{T}"/> invoked to initialize the
            reference.</param>
            <returns>The initialized reference of type <typeparamref name="T"/>.</returns>
            <exception cref="T:System.MissingMemberException">Type <typeparamref name="T"/> does not have a
            default constructor.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="valueFactory"/> returned
            null.</exception>
            <remarks>
            <para>
            This method may only be used on reference types, and <paramref name="valueFactory"/> may
            not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or
            to allow null reference types, see other overloads of EnsureInitialized.
            </para>
            <para>
            This method may be used concurrently by multiple threads to initialize <paramref name="target"/>.  
            In the event that multiple threads access this method concurrently, multiple instances of <typeparamref name="T"/>
            may be created, but only one will be stored into <paramref name="target"/>. In such an occurrence, this method will not dispose of the
            objects that were not stored.  If such objects must be disposed, it is up to the caller to determine 
            if an object was not used and to then dispose of the object appropriately.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitializedCore``1(``0@,System.Func{``0})">
            <summary>
            Initialize the target using the given delegate (slow path).
            </summary>
            <typeparam name="T">The reference type of the reference to be initialized.</typeparam>
            <param name="target">The variable that need to be initialized</param>
            <param name="valueFactory">The delegate that will be executed to initialize the target</param>
            <returns>The initialized variable</returns>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Boolean@,System.Object@)">
            <summary>
            Initializes a target reference or value type with its default constructor if it has not already
            been initialized.
            </summary>
            <typeparam name="T">The type of the reference to be initialized.</typeparam>
            <param name="target">A reference or value of type <typeparamref name="T"/> to initialize if it
            has not already been initialized.</param>
            <param name="initialized">A reference to a boolean that determines whether the target has already
            been initialized.</param>
            <param name="syncLock">A reference to an object used as the mutually exclusive lock for initializing
            <paramref name="target"/>.</param>
            <returns>The initialized value of type <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Boolean@,System.Object@,System.Func{``0})">
            <summary>
            Initializes a target reference or value type with a specified function if it has not already been
            initialized.
            </summary>
            <typeparam name="T">The type of the reference to be initialized.</typeparam>
            <param name="target">A reference or value of type <typeparamref name="T"/> to initialize if it
            has not already been initialized.</param>
            <param name="initialized">A reference to a boolean that determines whether the target has already
            been initialized.</param>
            <param name="syncLock">A reference to an object used as the mutually exclusive lock for initializing
            <paramref name="target"/>.</param>
            <param name="valueFactory">The <see cref="T:System.Func{T}"/> invoked to initialize the
            reference or value.</param>
            <returns>The initialized value of type <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:System.Threading.LazyInitializer.EnsureInitializedCore``1(``0@,System.Boolean@,System.Object@,System.Func{``0})">
            <summary>
            Ensure the target is initialized and return the value (slow path). This overload permits nulls
            and also works for value type targets. Uses the supplied function to create the value.
            </summary>
            <typeparam name="T">The type of target.</typeparam>
            <param name="target">A reference to the target to be initialized.</param>
            <param name="initialized">A reference to a location tracking whether the target has been initialized.</param>
            <param name="syncLock">A reference to a location containing a mutual exclusive lock.</param>
            <param name="valueFactory">
            The <see cref="T:System.Func{T}"/> to invoke in order to produce the lazily-initialized value.
            </param>
            <returns>The initialized object.</returns>
        </member>
        <member name="T:System.Threading.ThreadLocalGlobalCounter">
            <summary>
            A seprate non generic class that contains a global counter for fast path instances for all Ts that has been created, and adds an upper limit for all instances
            that uses the fast path, if this limit has been reached, all new instances will use the slow path
            </summary>
        </member>
        <member name="T:System.Threading.ThreadLocal`1">
            <summary>
            Provides thread-local storage of data.
            </summary>
            <typeparam name="T">Specifies the type of data stored per-thread.</typeparam>
            <remarks>
            <para>
            With the exception of <see cref="M:System.Threading.ThreadLocal`1.Dispose"/>, all public and protected members of 
            <see cref="T:System.Threading.ThreadLocal`1"/> are thread-safe and may be used
            concurrently from multiple threads.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.#ctor">
            <summary>
            Initializes the <see cref="T:System.Threading.ThreadLocal`1"/> instance.
            </summary>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.#ctor(System.Func{`0})">
            <summary>
            Initializes the <see cref="T:System.Threading.ThreadLocal`1"/> instance with the
            specified <paramref name="valueFactory"/> function.
            </summary>
            <param name="valueFactory">
            The <see cref="T:System.Func{T}"/> invoked to produce a lazily-initialized value when 
            an attempt is made to retrieve <see cref="P:System.Threading.ThreadLocal`1.Value"/> without it having been previously initialized.
            </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="valueFactory"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.Finalize">
            <summary>
            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}" /> instance.
            </summary>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.Dispose">
            <summary>
            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}" /> instance.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.ThreadLocal{T}"/>, this method is not thread-safe.
            </remarks>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.Dispose(System.Boolean)">
            <summary>
            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}"/> instance.
            </summary>
            <param name="disposing">
            A Boolean value that indicates whether this method is being called due to a call to <see cref="M:System.Threading.ThreadLocal`1.Dispose"/>.
            </param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.ThreadLocal{T}"/>, this method is not thread-safe.
            </remarks>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.FindNextTypeIndex">
            <summary>
            Tries to get a unique index for the current instance of type T, it first tries to get it from the pool if it is not empty, otherwise it
            increments the global counter if it is still below the maximum, otherwise it fails and returns -1
            </summary>
            <returns>True if there is an index available, false otherwise</returns>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.GetTypesFromIndex">
            <summary>
            Gets an array of types that will be used as generic parameters for the GenericHolder class
            </summary>
            <returns>The types array</returns>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.ToString">
            <summary>Creates and returns a string representation of this instance for the current thread.</summary>
            <returns>The result of calling <see cref="M:System.Object.ToString"/> on the <see cref="P:System.Threading.ThreadLocal`1.Value"/>.</returns>
            <exception cref="T:System.NullReferenceException">
            The <see cref="P:System.Threading.ThreadLocal`1.Value"/> for the current thread is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The initialization function referenced <see cref="P:System.Threading.ThreadLocal`1.Value"/> in an improper manner.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
            </exception>
            <remarks>
            Calling this method forces initialization for the current thread, as is the
            case with accessing <see cref="P:System.Threading.ThreadLocal`1.Value"/> directly.
            </remarks>
        </member>
        <member name="M:System.Threading.ThreadLocal`1.CreateValue">
            <summary>
            Private helper function to lazily create the value using the calueSelector if specified in the constructor or the default parameterless constructor
            </summary>
            <returns>Returns the boxed object</returns>
        </member>
        <member name="P:System.Threading.ThreadLocal`1.Value">
            <summary>
            Gets or sets the value of this instance for the current thread.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The initialization function referenced <see cref="P:System.Threading.ThreadLocal`1.Value"/> in an improper manner.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
            </exception>
            <remarks>
            If this instance was not previously initialized for the current thread,
            accessing <see cref="P:System.Threading.ThreadLocal`1.Value"/> will attempt to initialize it. If an initialization function was 
            supplied during the construction, that initialization will happen by invoking the function 
            to retrieve the initial value for <see cref="P:System.Threading.ThreadLocal`1.Value"/>.  Otherwise, the default value of 
            <typeparamref name="T"/> will be used.
            </remarks>
        </member>
        <member name="P:System.Threading.ThreadLocal`1.IsValueCreated">
            <summary>
            Gets whether <see cref="P:System.Threading.ThreadLocal`1.Value"/> is initialized on the current thread.
            </summary>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
            </exception>
        </member>
        <member name="P:System.Threading.ThreadLocal`1.ValueForDebugDisplay">
            <summary>Gets the value of the ThreadLocal&lt;T&gt; for debugging display purposes. It takes care of getting
            the value for the current thread in the ThreadLocal mode.</summary>
        </member>
        <member name="T:System.Threading.ThreadLocal`1.HolderBase">
            <summary>
            The base abstract class for the holder
            </summary>
        </member>
        <member name="T:System.Threading.ThreadLocal`1.TLSHolder">
            <summary>
            The TLS holder representation
            </summary>
        </member>
        <member name="T:System.Threading.ThreadLocal`1.GenericHolder`3">
            <summary>
            The generic holder representation
            </summary>
            <typeparam name="U">Dummy param</typeparam>
            <typeparam name="V">Dummy param</typeparam>
            <typeparam name="W">Dummy param</typeparam>
        </member>
        <member name="T:System.Threading.ThreadLocal`1.Boxed">
            <summary>
            wrapper to the actual value
            </summary>
        </member>
        <member name="T:System.Threading.SystemThreading_ThreadLocalDebugView`1">
            <summary>A debugger view of the ThreadLocal&lt;T&gt; to surface additional debugging properties and 
            to ensure that the ThreadLocal&lt;T&gt; does not become initialized if it was not already.</summary>
        </member>
        <member name="M:System.Threading.SystemThreading_ThreadLocalDebugView`1.#ctor(System.Threading.ThreadLocal{`0})">
            <summary>Constructs a new debugger view object for the provided ThreadLocal object.</summary>
            <param name="tlocal">A ThreadLocal object to browse in the debugger.</param>
        </member>
        <member name="P:System.Threading.SystemThreading_ThreadLocalDebugView`1.IsValueCreated">
            <summary>Returns whether the ThreadLocal object is initialized or not.</summary>
        </member>
        <member name="P:System.Threading.SystemThreading_ThreadLocalDebugView`1.Value">
            <summary>Returns the value of the ThreadLocal object.</summary>
        </member>
        <member name="T:System.Threading.SemaphoreSlim">
            <summary>
            Limits the number of threads that can access a resource or pool of resources concurrently.
            </summary>
            <remarks>
            <para>
            The <see cref="T:System.Threading.SemaphoreSlim"/> provides a lightweight semaphore class that doesn't
            use Windows kernel semaphores.
            </para>
            <para>
            All public and protected members of <see cref="T:System.Threading.SemaphoreSlim"/> are thread-safe and may be used
            concurrently from multiple threads, with the exception of Dispose, which
            must only be used when all other operations on the <see cref="T:System.Threading.SemaphoreSlim"/> have
            completed.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.SemaphoreSlim"/> class, specifying
            the initial number of requests that can be granted concurrently.
            </summary>
            <param name="initialCount">The initial number of requests for the semaphore that can be granted
            concurrently.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="initialCount"/>
            is less than 0.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.SemaphoreSlim"/> class, specifying
            the initial and maximum number of requests that can be granted concurrently.
            </summary>
            <param name="initialCount">The initial number of requests for the semaphore that can be granted
            concurrently.</param>
            <param name="maxCount">The maximum number of requests for the semaphore that can be granted
            concurrently.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="initialCount"/>
            is less than 0. -or-
            <paramref name="initialCount"/> is greater than <paramref name="maxCount"/>. -or-
            <paramref name="maxCount"/> is less than 0.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, while observing a
            <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> token to
            observe.</param>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was
            canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait(System.TimeSpan)">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a <see cref="T:System.TimeSpan"/> to measure the time interval.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
            otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
            otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Int32)">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a 32-bit
            signed integer to measure the time interval.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
            otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>,
            using a 32-bit signed integer to measure the time interval, 
            while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to
            wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to observe.</param>
            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>; otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a negative number other than -1,
            which represents an infinite time-out.</exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.WaitUntilCountOrTimeout(System.Int32,System.Int64,System.Threading.CancellationToken)">
            <summary>
            Local helper function, waits on the monitor until the monitor recieves signal or the
            timeout is expired
            </summary>
            <param name="millisecondsTimeout">The maximum timeout</param>
            <param name="startTimeTicks">The start ticks to calculate the elapsed time</param>
            <param name="cancellationToken">The CancellationToken to observe.</param>
            <returns>true if the monitor recieved a signal, false if the timeout expired</returns>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Release">
            <summary>
            Exits the <see cref="T:System.Threading.SemaphoreSlim"/> once.
            </summary>
            <returns>The previous count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</returns>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Release(System.Int32)">
            <summary>
            Exits the <see cref="T:System.Threading.SemaphoreSlim"/> a specified number of times.
            </summary>
            <param name="releaseCount">The number of times to exit the semaphore.</param>
            <returns>The previous count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="releaseCount"/> is less
            than 1.</exception>
            <exception cref="T:System.Threading.SemaphoreFullException">The <see cref="T:System.Threading.SemaphoreSlim"/> has
            already reached its maximum size.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Dispose">
            <summary>
            Releases all resources used by the current instance of <see cref="T:System.Threading.SemaphoreSlim"/>.
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.SemaphoreSlim"/>, <see cref="M:System.Threading.SemaphoreSlim.Dispose"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.Dispose(System.Boolean)">
            <summary>
            When overridden in a derived class, releases the unmanaged resources used by the 
            <see cref="T:System.Threading.ManualResetEventSlim"/>, and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources;
            false to release only unmanaged resources.</param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.SemaphoreSlim"/>, <see cref="M:System.Threading.SemaphoreSlim.Dispose(System.Boolean)"/> is not
            thread-safe and may not be used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.UpdateTimeOut(System.Int64,System.Int32)">
            <summary>
            Helper function to measure and update the wait time
            </summary>
            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started</param>
            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds</param>
            <returns>The new wait time in milliseconds, -1 if the time expired</returns>
        </member>
        <member name="F:System.Threading.SemaphoreSlim.s_cancellationTokenCanceledEventHandler">
            <summary>
            Private helper method to wake up waiters when a cancellationToken gets canceled.
            </summary>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.CheckDispose">
            <summary>
            Checks the dispose status by checking the lock object, if it is null means that object
            has been disposed and throw ObjectDisposedException
            </summary>
        </member>
        <member name="M:System.Threading.SemaphoreSlim.GetResourceString(System.String)">
            <summary>
            local helper function to retrieve the exception string message from the resource file
            </summary>
            <param name="str">The key string</param>
        </member>
        <member name="P:System.Threading.SemaphoreSlim.CurrentCount">
            <summary>
            Gets the current count of the <see cref="T:System.Threading.SemaphoreSlim"/>.
            </summary>
            <value>The current count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</value>
        </member>
        <member name="P:System.Threading.SemaphoreSlim.AvailableWaitHandle">
            <summary>
            Returns a <see cref="T:System.Threading.WaitHandle"/> that can be used to wait on the semaphore.
            </summary>
            <value>A <see cref="T:System.Threading.WaitHandle"/> that can be used to wait on the
            semaphore.</value>
            <remarks>
            A successful wait on the <see cref="P:System.Threading.SemaphoreSlim.AvailableWaitHandle"/> does not imply a successful wait on
            the <see cref="T:System.Threading.SemaphoreSlim"/> itself, nor does it decrement the semaphore's
            count. <see cref="P:System.Threading.SemaphoreSlim.AvailableWaitHandle"/> exists to allow a thread to block waiting on multiple
            semaphores, but such a wait should be followed by a true wait on the target semaphore.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Threading.SemaphoreSlim"/> has been disposed.</exception>
        </member>
        <member name="T:System.Threading.SpinWait">
            <summary>
            Provides support for spin-based waiting.
            </summary>
            <remarks>
            <para>
            <see cref="T:System.Threading.SpinWait"/> encapsulates common spinning logic. On single-processor machines, yields are
            always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™
            technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of
            spinning and true yielding.
            </para>
            <para>
            <see cref="T:System.Threading.SpinWait"/> is a value type, which means that low-level code can utilize SpinWait without
            fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications.
            In most cases, you should use the synchronization classes provided by the .NET Framework, such as
            <see cref="T:System.Threading.Monitor"/>. For most purposes where spin waiting is required, however,
            the <see cref="T:System.Threading.SpinWait"/> type should be preferred over the <see cref="M:System.Threading.Thread.SpinWait(System.Int32)"/> method.
            </para>
            <para>
            While SpinWait is designed to be used in concurrent applications, it is not designed to be
            used from multiple threads concurrently.  SpinWait's members are not thread-safe.  If multiple
            threads must spin, each should use its own instance of SpinWait.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.SpinWait.SpinOnce">
            <summary>
            Performs a single spin.
            </summary>
            <remarks>
            This is typically called in a loop, and may change in behavior based on the number of times a
            <see cref="M:System.Threading.SpinWait.SpinOnce"/> has been called thus far on this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.SpinWait.Reset">
            <summary>
            Resets the spin counter.
            </summary>
            <remarks>
            This makes <see cref="M:System.Threading.SpinWait.SpinOnce"/> and <see cref="P:System.Threading.SpinWait.NextSpinWillYield"/> behave as though no calls
            to <see cref="M:System.Threading.SpinWait.SpinOnce"/> had been issued on this instance. If a <see cref="T:System.Threading.SpinWait"/> instance
            is reused many times, it may be useful to reset it to avoid yielding too soon.
            </remarks>
        </member>
        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean})">
            <summary>
            Spins until the specified condition is satisfied.
            </summary>
            <param name="condition">A delegate to be executed over and over until it returns true.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
        </member>
        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean},System.TimeSpan)">
            <summary>
            Spins until the specified condition is satisfied or until the specified timeout is expired.
            </summary>
            <param name="condition">A delegate to be executed over and over until it returns true.</param>
            <param name="timeout">
            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, 
            or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <returns>True if the condition is satisfied within the timeout; otherwise, false</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.</exception>
        </member>
        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean},System.Int32)">
            <summary>
            Spins until the specified condition is satisfied or until the specified timeout is expired.
            </summary>
            <param name="condition">A delegate to be executed over and over until it returns true.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <returns>True if the condition is satisfied within the timeout; otherwise, false</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
        </member>
        <member name="P:System.Threading.SpinWait.Count">
            <summary>
            Gets the number of times <see cref="M:System.Threading.SpinWait.SpinOnce"/> has been called on this instance.
            </summary>
        </member>
        <member name="P:System.Threading.SpinWait.NextSpinWillYield">
            <summary>
            Gets whether the next call to <see cref="M:System.Threading.SpinWait.SpinOnce"/> will yield the processor, triggering a
            forced context switch.
            </summary>
            <value>Whether the next call to <see cref="M:System.Threading.SpinWait.SpinOnce"/> will yield the processor, triggering a
            forced context switch.</value>
            <remarks>
            On a single-CPU machine, <see cref="M:System.Threading.SpinWait.SpinOnce"/> always yields the processor. On machines with
            multiple CPUs, <see cref="M:System.Threading.SpinWait.SpinOnce"/> may yield after an unspecified number of calls.
            </remarks>
        </member>
        <member name="T:System.Threading.PlatformHelper">
            <summary>
            A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval
            </summary>
        </member>
        <member name="P:System.Threading.PlatformHelper.ProcessorCount">
            <summary>
            Gets the number of available processors
            </summary>
        </member>
        <member name="P:System.Threading.PlatformHelper.IsSingleProcessor">
            <summary>
            Gets whether the current machine has only a single processor.
            </summary>
        </member>
        <member name="T:System.Threading.SpinLock">
            <summary>
            Provides a mutual exclusion lock primitive where a thread trying to acquire the lock waits in a loop
            repeatedly checking until the lock becomes available.
            </summary>
            <remarks>
            <para>
            Spin locks can be used for leaf-level locks where the object allocation implied by using a <see cref="T:System.Threading.Monitor"/>, in size or due to garbage collection pressure, is overly
            expensive. Avoiding blocking is another reason that a spin lock can be useful, however if you expect
            any significant amount of blocking, you are probably best not using spin locks due to excessive
            spinning. Spinning can be beneficial when locks are fine grained and large in number (for example, a
            lock per node in a linked list) as well as when lock hold times are always extremely short. In
            general, while holding a spin lock, one should avoid blocking, calling anything that itself may
            block, holding more than one spin lock at once, making dynamically dispatched calls (interface and
            virtuals), making statically dispatched calls into any code one doesn't own, or allocating memory.
            </para>
            <para>
            <see cref="T:System.Threading.SpinLock"/> should only be used when it's been determined that doing so will improve an
            application's performance. It's also important to note that <see cref="T:System.Threading.SpinLock"/> is a value type,
            for performance reasons. As such, one must be very careful not to accidentally copy a SpinLock
            instance, as the two instances (the original and the copy) would then be completely independent of
            one another, which would likely lead to erroneous behavior of the application. If a SpinLock instance
            must be passed around, it should be passed by reference rather than by value.
            </para>
            <para>
            Do not store <see cref="T:System.Threading.SpinLock"/> instances in readonly fields.
            </para>
            <para>
            All members of <see cref="T:System.Threading.SpinLock"/> are thread-safe and may be used from multiple threads
            concurrently.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.SpinLock.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.SpinLock"/>
            structure with the option to track thread IDs to improve debugging.
            </summary>
            <remarks>
            The default constructor for <see cref="T:System.Threading.SpinLock"/> tracks thread ownership.
            </remarks>
            <param name="enableThreadOwnerTracking">Whether to capture and use thread IDs for debugging
            purposes.</param>
        </member>
        <member name="M:System.Threading.SpinLock.Enter(System.Boolean@)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.SpinLock"/>
            structure with the option to track thread IDs to improve debugging.
            </summary>
            <remarks>
            The default constructor for <see cref="T:System.Threading.SpinLock"/> tracks thread ownership.
            </remarks>
            <summary>
            Acquires the lock in a reliable manner, such that even if an exception occurs within the method
            call, <paramref name="lockTaken"/> can be examined reliably to determine whether the lock was
            acquired.
            </summary>
            <remarks>
            <see cref="T:System.Threading.SpinLock"/> is a non-reentrant lock, meaning that if a thread holds the lock, it is
            not allowed to enter the lock again. If thread ownership tracking is enabled (whether it's
            enabled is available through <see cref="P:System.Threading.SpinLock.IsThreadOwnerTrackingEnabled"/>), an exception will be
            thrown when a thread tries to re-enter a lock it already holds. However, if thread ownership
            tracking is disabled, attempting to enter a lock already held will result in deadlock.
            </remarks>
            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
            <exception cref="T:System.Threading.LockRecursionException">
            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling Enter.
            </exception>
        </member>
        <member name="M:System.Threading.SpinLock.TryEnter(System.Boolean@)">
            <summary>
            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
            lock was acquired.
            </summary>
            <remarks>
            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block waiting for the lock to be available. If the
            lock is not available when TryEnter is called, it will return immediately without any further
            spinning.
            </remarks>
            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
            <exception cref="T:System.Threading.LockRecursionException">
            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
            </exception>
        </member>
        <member name="M:System.Threading.SpinLock.TryEnter(System.TimeSpan,System.Boolean@)">
            <summary>
            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
            lock was acquired.
            </summary>
            <remarks>
            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block indefinitely waiting for the lock to be
            available. It will block until either the lock is available or until the <paramref name="timeout"/>
            has expired.
            </remarks>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
            <exception cref="T:System.Threading.LockRecursionException">
            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
            than <see cref="F:System.Int32.MaxValue"/> milliseconds.
            </exception>
        </member>
        <member name="M:System.Threading.SpinLock.TryEnter(System.Int32,System.Boolean@)">
            <summary>
            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
            lock was acquired.
            </summary>
            <remarks>
            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block indefinitely waiting for the lock to be
            available. It will block until either the lock is available or until the <paramref name="millisecondsTimeout"/> has expired.
            </remarks>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
            <exception cref="T:System.Threading.LockRecursionException">
            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is
            a negative number other than -1, which represents an infinite time-out.</exception>
        </member>
        <member name="M:System.Threading.SpinLock.ContinueTryEnter(System.Int32,System.Boolean@)">
            <summary>
            Try acquire the lock with long path, this is usually called after the first path in Enter and
            TryEnter failed The reason for short path is to make it inline in the run time which improves the
            performance. This method assumed that the parameter are validated in Enter ir TryENter method
            </summary>
            <param name="millisecondsTimeout">The timeout milliseconds</param>
            <param name="lockTaken">The lockTaken param</param>
        </member>
        <member name="M:System.Threading.SpinLock.DecrementWaiters">
            <summary>
            decrements the waiters, in case of the timeout is expired
            </summary>
        </member>
        <member name="M:System.Threading.SpinLock.ContinueTryEnterWithThreadTracking(System.Int32,System.Int64,System.Boolean@)">
            <summary>
            ContinueTryEnter for the thread tracking mode enabled
            </summary>
        </member>
        <member name="M:System.Threading.SpinLock.TimeoutExpired(System.Int64,System.Int32)">
            <summary>
            Helper function to validate the timeout
            </summary>
            <param name="startTicks"> The start time in ticks</param>
            <param name="originalWaitTime">The orginal wait time</param>
            <returns>True if expired, false otherwise</returns>
        </member>
        <member name="M:System.Threading.SpinLock.Exit">
            <summary>
            Releases the lock.
            </summary>
            <remarks>
            The default overload of <see cref="M:System.Threading.SpinLock.Exit"/> provides the same behavior as if calling <see cref="M:System.Threading.SpinLock.Exit(System.Boolean)"/> using true as the argument.
            </remarks>
            <exception cref="T:System.Threading.SynchronizationLockException">
            Thread ownership tracking is enabled, and the current thread is not the owner of this lock.
            </exception>
        </member>
        <member name="M:System.Threading.SpinLock.Exit(System.Boolean)">
            <summary>
            Releases the lock.
            </summary>
            <param name="useMemoryBarrier">
            A Boolean value that indicates whether a memory fence should be issued in order to immediately
            publish the exit operation to other threads.
            </param>
            <remarks>
            Calling <see cref="M:System.Threading.SpinLock.Exit(System.Boolean)"/> with the <paramref name="useMemoryBarrier"/> argument set to
            true will improve the fairness of the lock at the expense of some performance. The default <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>
            overload behaves as if specifying true for <paramref name="useMemoryBarrier"/>.
            </remarks>
            <exception cref="T:System.Threading.SynchronizationLockException">
            Thread ownership tracking is enabled, and the current thread is not the owner of this lock.
            </exception>
        </member>
        <member name="P:System.Threading.SpinLock.IsHeld">
            <summary>
            Gets whether the lock is currently held by any thread.
            </summary>
        </member>
        <member name="P:System.Threading.SpinLock.IsHeldByCurrentThread">
            <summary>
            Gets whether the lock is currently held by any thread.
            </summary>
            <summary>
            Gets whether the lock is held by the current thread.
            </summary>
            <remarks>
            If the lock was initialized to track owner threads, this will return whether the lock is acquired
            by the current thread. It is invalid to use this property when the lock was initialized to not
            track thread ownership.
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            Thread ownership tracking is disabled.
            </exception>
        </member>
        <member name="P:System.Threading.SpinLock.IsThreadOwnerTrackingEnabled">
            <summary>Gets whether thread ownership tracking is enabled for this instance.</summary>
        </member>
        <member name="T:System.Threading.SpinLock.SystemThreading_SpinLockDebugView">
            <summary>
            Internal class used by debug type proxy attribute to display the owner thread ID 
            </summary>
        </member>
        <member name="M:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.#ctor(System.Threading.SpinLock)">
            <summary>
            SystemThreading_SpinLockDebugView constructor
            </summary>
            <param name="spinLock">The SpinLock to be proxied.</param>
        </member>
        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.IsHeldByCurrentThread">
            <summary>
            Checks if the lock is held by the current thread or not
            </summary>
        </member>
        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.OwnerThreadID">
            <summary>
            Gets the current owner thread, zero if it is released
            </summary>
        </member>
        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.IsHeld">
            <summary>
             Gets whether the lock is currently held by any thread or not.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.ParallelOptions">
            <summary>
            Stores options that configure the operation of methods on the 
            <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> class.
            </summary>
            <remarks>
            By default, methods on the Parallel class attempt to utilize all available processors, are non-cancelable, and target
            the default TaskScheduler (TaskScheduler.Default). <see cref="T:System.Threading.Tasks.ParallelOptions"/> enables
            overriding these defaults.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.ParallelOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.ParallelOptions"/> class.
            </summary>
            <remarks>
            This constructor initializes the instance with default values.  <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/>
            is initialized to -1, signifying that there is no upper bound set on how much parallelism should
            be employed.  <see cref="P:System.Threading.Tasks.ParallelOptions.CancellationToken"/> is initialized to a non-cancelable token,
            and <see cref="P:System.Threading.Tasks.ParallelOptions.TaskScheduler"/> is initialized to the default scheduler (TaskScheduler.Default).  
            All of these defaults may be overwritten using the property set accessors on the instance.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelOptions.TaskScheduler">
            <summary>
            Gets or sets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> 
            associated with this <see cref="T:System.Threading.Tasks.ParallelOptions"/> instance. Setting this property to null
            indicates that the current scheduler should be used.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism">
            <summary>
            Gets or sets the maximum degree of parallelism enabled by this ParallelOptions instance.
            </summary>
            <remarks>
            The <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> limits the number of concurrent operations run by <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> method calls that are passed this
            ParallelOptions instance to the set value, if it is positive. If <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> is -1, then there is no limit placed on the number of concurrently
            running operations.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The exception that is thrown when this <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> is set to 0 or some
            value less than -1.
            </exception>
        </member>
        <member name="P:System.Threading.Tasks.ParallelOptions.CancellationToken">
            <summary>
            Gets or sets the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            associated with this <see cref="T:System.Threading.Tasks.ParallelOptions"/> instance.
            </summary>
            <remarks>
            Providing a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            to a <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> method enables the operation to be
            exited early. Code external to the operation may cancel the token, and if the operation observes the
            token being set, it may exit early by throwing an
            <see cref="T:System.OperationCanceledException"/>.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Parallel">
            <summary>
            Provides support for parallel loops and regions.
            </summary>
            <remarks>
            The <see cref="T:System.Threading.Tasks.Parallel"/> class provides library-based data parallel replacements
            for common operations such as for loops, for each loops, and execution of a set of statements.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.Invoke(System.Action[])">
            <summary>
            Executes each of the provided actions, possibly in parallel.
            </summary>
            <param name="actions">An array of <see cref="T:System.Action">Actions</see> to execute.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="actions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="actions"/> array contains a null element.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown when any
            action in the <paramref name="actions"/> array throws an exception.</exception>
            <remarks>
            This method can be used to execute a set of operations, potentially in parallel.   
            No guarantees are made about the order in which the operations execute or whether 
            they execute in parallel.  This method does not return until each of the 
            provided operations has completed, regardless of whether completion 
            occurs due to normal or exceptional termination.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.Invoke(System.Threading.Tasks.ParallelOptions,System.Action[])">
            <summary>
            Executes each of the provided actions, possibly in parallel.
            </summary>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="actions">An array of <see cref="T:System.Action">Actions</see> to execute.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="actions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="actions"/> array contains a null element.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown when any 
            action in the <paramref name="actions"/> array throws an exception.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <remarks>
            This method can be used to execute a set of operations, potentially in parallel.   
            No guarantees are made about the order in which the operations execute or whether 
            the they execute in parallel.  This method does not return until each of the 
            provided operations has completed, regardless of whether completion 
            occurs due to normal or exceptional termination.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Action{System.Int32})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int32) as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Action{System.Int64})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int64) as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int32) as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int64) as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </para>
            <para>
            Calling <see cref="M:System.Threading.Tasks.ParallelLoopState.Break">ParallelLoopState.Break()</see>
            informs the For operation that iterations after the current one need not 
            execute.  However, all iterations before the current one will still need to be executed if they have not already.
            Therefore, calling Break is similar to using a break operation within a 
            conventional for loop in a language like C#, but it is not a perfect substitute: for example, there is no guarantee that iterations 
            after the current one will definitely not execute.
            </para>
            <para>
            If executing all iterations before the current one is not necessary, 
            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop">ParallelLoopState.Stop()</see>
            should be preferred to using Break.  Calling Stop informs the For loop that it may abandon all remaining
            iterations, regardless of whether they're for interations above or below the current, 
            since all required work has already been completed.  As with Break, however, there are no guarantees regarding 
            which other iterations will not execute.
            </para>
            <para>
            When a loop is ended prematurely, the <see cref="T:ParallelLoopState"/> that's returned will contain
            relevant information about the loop's completion.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int32,System.Int32,System.Func{``0},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int64,System.Int64,System.Func{``0},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
            <summary>
            Executes a for loop in which iterations may run in parallel.  Supports 64-bit indices.
            </summary>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func{``0},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func{``0},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
            <summary>
            Executes a for loop in which iterations may run in parallel.
            </summary>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="fromInclusive">The start index, inclusive.</param>
            <param name="toExclusive">The end index, exclusive.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForWorker``1(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32},System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Func{``0},System.Action{``0})">
            <summary>
            Performs the major work of the parallel for loop. It assumes that argument validation has already
            been performed by the caller. This function's whole purpose in life is to enable as much reuse of
            common implementation details for the various For overloads we offer. Without it, we'd end up
            with lots of duplicate code. It handles: (1) simple for loops, (2) for loops that depend on
            ParallelState, and (3) for loops with thread local data.
            
            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
            specific overloads above. There is some overhead associated with the extra arguments passed to
            the function, and various if-checks in the code. It is also more difficult to follow what the
            code does as-is because it has to handle the three flavors.
            </summary>
            <typeparam name="TLocal">The type of the local data.</typeparam>
            <param name="fromInclusive">The loop's start index, inclusive.</param>
            <param name="toExclusive">The loop's end index, exclusive.</param>
            <param name="parallelOptions">A ParallelOptions instance.</param>
            <param name="body">The simple loop body.</param>
            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
            <param name="bodyWithLocal">The loop body for thread local state overloads.</param>
            <param name="localInit">A selector function that returns new thread local state.</param>
            <param name="localFinally">A cleanup function to destroy thread local state.</param>
            <remarks>Only one of the body arguments may be supplied (i.e. they are exclusive).</remarks>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForWorker64``1(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64},System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Func{``0},System.Action{``0})">
            <summary>
            Performs the major work of the 64-bit parallel for loop. It assumes that argument validation has already
            been performed by the caller. This function's whole purpose in life is to enable as much reuse of
            common implementation details for the various For overloads we offer. Without it, we'd end up
            with lots of duplicate code. It handles: (1) simple for loops, (2) for loops that depend on
            ParallelState, and (3) for loops with thread local data.
            
            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
            specific overloads above. There is some overhead associated with the extra arguments passed to
            the function, and various if-checks in the code. It is also more difficult to follow what the
            code does as-is because it has to handle the three flavors.
            </summary>
            <typeparam name="TLocal">The type of the local data.</typeparam>
            <param name="fromInclusive">The loop's start index, inclusive.</param>
            <param name="toExclusive">The loop's end index, exclusive.</param>
            <param name="parallelOptions">A ParallelOptions instance.</param>
            <param name="body">The simple loop body.</param>
            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
            <param name="bodyWithLocal">The loop body for thread local state overloads.</param>
            <param name="localInit">A selector function that returns new thread local state.</param>
            <param name="localFinally">A cleanup function to destroy thread local state.</param>
            <remarks>Only one of the body arguments may be supplied (i.e. they are exclusive).</remarks>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the current element as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the current element as a parameter.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and the current element's index (an Int64).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and the current element's index (an Int64).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
            state that may be shared amongst iterations that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
            in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the data in the source.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            enumerable.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
            state that may be shared amongst iterations that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
            <summary>
            Performs the major work of the parallel foreach loop. It assumes that argument validation has
            already been performed by the caller. This function's whole purpose in life is to enable as much
            reuse of common implementation details for the various For overloads we offer. Without it, we'd
            end up with lots of duplicate code. It handles: (1) simple foreach loops, (2) foreach loops that
            depend on ParallelState, and (3) foreach loops that access indices, (4) foreach loops with thread
            local data, and any necessary permutations thereof.
            
            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
            specific overloads above. There is some overhead associated with the extra arguments passed to
            the function, and various if-checks in the code. It is also more difficult to follow what the
            code does as-is because it has to handle the all flavors.
            </summary>
            <typeparam name="TSource">The type of the source data.</typeparam>
            <typeparam name="TLocal">The type of the local data.</typeparam>
            <param name="source">An enumerable data source.</param>
            <param name="parallelOptions">ParallelOptions instance to use with this ForEach-loop</param>
            <param name="body">The simple loop body.</param>
            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
            <param name="bodyWithStateAndIndex">The loop body for ParallelState/indexed overloads.</param>
            <param name="bodyWithStateAndLocal">The loop body for ParallelState/thread local state overloads.</param>
            <param name="bodyWithEverything">The loop body for ParallelState/indexed/thread local state overloads.</param>
            <param name="localInit">A selector function that returns new thread local state.</param>
            <param name="localFinally">A cleanup function to destroy thread local state.</param>
            <remarks>Only one of the bodyXX arguments may be supplied (i.e. they are exclusive).</remarks>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(``0[],System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
            <summary>
            A fast path for the more general ForEachWorker method above. This uses ldelem instructions to
            access the individual elements of the array, which will be faster.
            </summary>
            <typeparam name="TSource">The type of the source data.</typeparam>
            <typeparam name="TLocal">The type of the local data.</typeparam>
            <param name="array">An array data source.</param>
            <param name="parallelOptions">The options to use for execution.</param>
            <param name="body">The simple loop body.</param>
            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
            <param name="bodyWithStateAndIndex">The loop body for indexed/ParallelLoopState overloads.</param>
            <param name="bodyWithStateAndLocal">The loop body for local/ParallelLoopState overloads.</param>
            <param name="bodyWithEverything">The loop body for the most generic overload.</param>
            <param name="localInit">A selector function that returns new thread local state.</param>
            <param name="localFinally">A cleanup function to destroy thread local state.</param>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(System.Collections.Generic.IList{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
            <summary>
            A fast path for the more general ForEachWorker method above. This uses IList&lt;T&gt;'s indexer
            capabilities to access the individual elements of the list rather than an enumerator.
            </summary>
            <typeparam name="TSource">The type of the source data.</typeparam>
            <typeparam name="TLocal">The type of the local data.</typeparam>
            <param name="list">A list data source.</param>
            <param name="parallelOptions">The options to use for execution.</param>
            <param name="body">The simple loop body.</param>
            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
            <param name="bodyWithStateAndIndex">The loop body for indexed/ParallelLoopState overloads.</param>
            <param name="bodyWithStateAndLocal">The loop body for local/ParallelLoopState overloads.</param>
            <param name="bodyWithEverything">The loop body for the most generic overload.</param>
            <param name="localInit">A selector function that returns new thread local state.</param>
            <param name="localFinally">A cleanup function to destroy thread local state.</param>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Action{``0})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the current element as a parameter.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.OrderablePartitioner{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
            OrderablePartitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The OrderablePartitioner that contains the original data source.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner do not return the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IList with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and the current element's index (an Int64).
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.Partitioner{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.OrderablePartitioner{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
            OrderablePartitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">The OrderablePartitioner that contains the original data source.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner do not return the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IList with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
            state that may be shared amongst iterations that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the current element as a parameter.
            </para>    
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely.
            </para>  
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.OrderablePartitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
            OrderablePartitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <param name="source">The OrderablePartitioner that contains the original data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner do not return the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IList with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and the current element's index (an Int64).
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
            Partitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">The Partitioner that contains the original data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> Partitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
            the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
            with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
            IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
            that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.OrderablePartitioner{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
            <summary>
            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
            OrderablePartitioner</see> in which iterations may run in parallel.
            </summary>
            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
            <param name="source">The OrderablePartitioner that contains the original data source.</param>
            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
            instance that configures the behavior of this operation.</param>
            <param name="localInit">The function delegate that returns the initial state of the local data 
            for each thread.</param>
            <param name="body">The delegate that is invoked once per iteration.</param>
            <param name="localFinally">The delegate that performs a final action on the local state of each
            thread.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="parallelOptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localInit"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="localFinally"/> argument is null.</exception>
            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
            argument is set</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
            false.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner do not return the correct number of partitions.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IList with at least one null value.</exception>
            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
            thrown from one of the specified delegates.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
            <paramref name="parallelOptions"/> has been disposed.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
            that contains information on what portion of the loop completed.</returns>
            <remarks>
            <para>
            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
            the elements to be processed, in place of the original data source.  If the current element's 
            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
            OrderablePartitioner</see>.
            </para>
            <para>
            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
            Partitioner.  It is provided with the following parameters: the current element, 
            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
            state that may be shared amongst iterations that execute on the same thread.
            </para>
            <para>
            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
            action on each thread's local state.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Parallel.ThrowIfReducableToSingleOCE(System.Collections.Generic.IEnumerable{System.Exception},System.Threading.CancellationToken)">
            <summary>
            Internal utility function that implements the OCE filtering behavior for all Parallel.* APIs.
            Throws a single OperationCancelledException object with the token if the Exception collection only contains 
            OperationCancelledExceptions with the given CancellationToken.
            
            </summary>
            <param name="excCollection"> The exception collection to filter</param>
            <param name="ct"> The CancellationToken expected on all inner exceptions</param>
            <returns></returns>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopState">
            <summary>
            Enables iterations of <see cref="T:System.Threading.Tasks.Parallel"/> loops to interact with
            other iterations.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState.Stop">
            <summary>
            Communicates that the <see cref="T:System.Threading.Tasks.Parallel"/> loop should cease execution at the system's earliest
            convenience.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> method was previously called.  <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> and <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> may not be used in combination by iterations of the same loop.
            </exception>
            <remarks>
            <para>
            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> may be used to communicate to the loop that no other iterations need be run.
            For long-running iterations that may already be executing, <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> causes <see cref="P:System.Threading.Tasks.ParallelLoopState.IsStopped"/>
            to return true for all other iterations of the loop, such that another iteration may check <see cref="P:System.Threading.Tasks.ParallelLoopState.IsStopped"/> and exit early if it's observed to be true.
            </para>
            <para>
            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> is typically employed in search-based algorithms, where once a result is found,
            no other iterations need be executed.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState.Break">
            <summary>
            Communicates that the <see cref="T:System.Threading.Tasks.Parallel"/> loop should cease execution at the system's earliest
            convenience of iterations beyond the current iteration.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> method was previously called. <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> and <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>
            may not be used in combination by iterations of the same loop.
            </exception>
            <remarks>
            <para>
            <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> may be used to communicate to the loop that no other iterations after the
            current iteration need be run. For example, if <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> is called from the 100th
            iteration of a for loop iterating in parallel from 0 to 1000, all iterations less than 100 should
            still be run, but the iterations from 101 through to 1000 are not necessary.
            </para>
            <para>
            For long-running iterations that may already be executing, <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> causes <see cref="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration"/>
            to be set to the current iteration's index if the current index is less than the current value of
            <see cref="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration"/>.
            </para>
            <para>
            <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> is typically employed in search-based algorithms where an ordering is
            present in the data source.
            </para>
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.InternalShouldExitCurrentIteration">
            <summary>
            Internal/virtual support for ShouldExitCurrentIteration.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.ShouldExitCurrentIteration">
            <summary>
            Gets whether the current iteration of the loop should exit based
            on requests made by this or other iterations.
            </summary>
            <remarks>
            When an iteration of a loop calls <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> or <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>, or
            when one throws an exception, or when the loop is canceled, the <see cref="T:System.Threading.Tasks.Parallel"/> class will proactively
            attempt to prohibit additional iterations of the loop from starting execution.
            However, there may be cases where it is unable to prevent additional iterations from starting.
            It may also be the case that a long-running iteration has already begun execution.  In such
            cases, iterations may explicitly check the <see cref="P:System.Threading.Tasks.ParallelLoopState.ShouldExitCurrentIteration"/> property and
            cease execution if the property returns true.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.IsStopped">
            <summary>
            Gets whether any iteration of the loop has called <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.IsExceptional">
            <summary>
            Gets whether any iteration of the loop has thrown an exception that went unhandled by that
            iteration.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.InternalLowestBreakIteration">
            <summary>
            Internal/virtual support for LowestBreakIteration.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration">
            <summary>
            Gets the lowest iteration of the loop from which <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was called.
            </summary>
            <remarks>
            If no iteration of the loop called <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/>, this property will return null.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState32.#ctor(System.Threading.Tasks.ParallelLoopStateFlags32)">
            <summary>
            Internal constructor to ensure an instance isn't created by users.
            </summary>
            <param name="sharedParallelStateFlags">A flag shared among all threads participating
            in the execution of a certain loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState32.InternalBreak">
            <summary>
            Communicates that parallel tasks should stop when they reach a specified iteration element.
            (which is CurrentIteration of the caller).
            </summary>
            <exception cref="T:System.InvalidOperationException">Break() called after Stop().</exception>
            <remarks>
            This is shared with all other concurrent threads in the system which are participating in the
            loop's execution. After calling Break(), no additional iterations will be executed on
            the current thread, and other worker threads will execute once they get beyond the calling iteration.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState32.CurrentIteration">
            <summary>
            Tracks the current loop iteration for the owning task.
            This is used to compute whether or not the task should
            terminate early due to a Break() call.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState32.InternalShouldExitCurrentIteration">
            <summary>
            Returns true if we should be exiting from the current iteration
            due to Stop(), Break() or exception.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState32.InternalLowestBreakIteration">
            <summary>
            Returns the lowest iteration at which Break() has been called, or
            null if Break() has not yet been called.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopState64">
            <summary>
            Allows independent iterations of a parallel loop to interact with other iterations.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState64.#ctor(System.Threading.Tasks.ParallelLoopStateFlags64)">
            <summary>
            Internal constructor to ensure an instance isn't created by users.
            </summary>
            <param name="sharedParallelStateFlags">A flag shared among all threads participating
            in the execution of a certain loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopState64.InternalBreak">
            <summary>
            Communicates that parallel tasks should stop when they reach a specified iteration element.
            (which is CurrentIteration of the caller).
            </summary>
            <exception cref="T:System.InvalidOperationException">Break() called after Stop().</exception>
            <remarks>
            Atomically sets shared StoppedBroken flag to BROKEN, then atomically sets shared 
            LowestBreakIteration to CurrentIteration, but only if CurrentIteration is less than 
            LowestBreakIteration.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState64.CurrentIteration">
            <summary>
            Tracks the current loop iteration for the owning task.
            This is used to compute whether or not the task should
            terminate early due to a Break() call.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState64.InternalShouldExitCurrentIteration">
            <summary>
            Returns true if we should be exiting from the current iteration
            due to Stop(), Break() or exception.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopState64.InternalLowestBreakIteration">
            <summary>
            Returns the lowest iteration at which Break() has been called, or
            null if Break() has not yet been called.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags">
            <summary>
            State information that is common between ParallelStateFlags class
            and ParallelStateFlags64 class.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags32">
            <summary>
            An internal class used to share accounting information in 32-bit versions
            of For()/ForEach() loops.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopStateFlags32.ShouldExitLoop(System.Int32)">
            <summary>
            Lets the caller know whether or not to prematurely exit the For/ForEach loop.
            If this returns true, then exit the loop.  Otherwise, keep going.
            </summary>
            <param name="CallerIteration">The caller's current iteration point
            in the loop.</param>
            <remarks>
            The loop should exit on any one of the following conditions:
              (1) Stop() has been called by one or more tasks.
              (2) An exception has been raised by one or more tasks.
              (3) Break() has been called by one or more tasks, and
                  CallerIteration exceeds the (lowest) iteration at which 
                  Break() was called.
              (4) The loop was canceled.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags64">
            <summary>
            An internal class used to share accounting information in 64-bit versions
            of For()/ForEach() loops.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ParallelLoopStateFlags64.ShouldExitLoop(System.Int64)">
            <summary>
            Lets the caller know whether or not to prematurely exit the For/ForEach loop.
            If this returns true, then exit the loop.  Otherwise, keep going.
            </summary>
            <param name="CallerIteration">The caller's current iteration point
            in the loop.</param>
            <remarks>
            The loop should exit on any one of the following conditions:
              (1) Stop() has been called by one or more tasks.
              (2) An exception has been raised by one or more tasks.
              (3) Break() has been called by one or more tasks, and
                  CallerIteration exceeds the (lowest) iteration at which 
                  Break() was called.
              (4) The loop has been canceled.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.ParallelLoopResult">
            <summary>
            Provides completion status on the execution of a <see cref="T:System.Threading.Tasks.Parallel"/> loop.
            </summary>
            <remarks>
            If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns true, then the loop ran to completion, such that all iterations
            of the loop were executed. If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns false and <see cref="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration"/> returns null, a call to <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> was used to end the loop prematurely. If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns false and <see cref="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration"/> returns a non-null integral
            value, <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was used to end the loop prematurely.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted">
            <summary>
            Gets whether the loop ran to completion, such that all iterations of the loop were executed
            and the loop didn't receive a request to end prematurely.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration">
            <summary>
            Gets the index of the lowest iteration from which <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/>
            was called.
            </summary>
            <remarks>
            If <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was not employed, this property will
            return null.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Shared`1">
            <summary>
            Utility class for allocating structs as heap variables
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.IndexRange">
            <summary>
            Represents an index range
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.RangeWorker">
            <summary>
            The RangeWorker struct wraps the state needed by a task that services the parallel loop
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.RangeWorker.#ctor(System.Threading.Tasks.IndexRange[],System.Int32,System.Int64)">
            <summary>
            Initializes a RangeWorker struct
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.RangeWorker.FindNewWork(System.Int64@,System.Int64@)">
            <summary>
            Implements the core work search algorithm that will be used for this range worker. 
            </summary> 
            
            Usage pattern is:
               1) the thread associated with this rangeworker calls FindNewWork
               2) if we return true, the worker uses the nFromInclusiveLocal and nToExclusiveLocal values
                  to execute the sequential loop
               3) if we return false it means there is no more work left. It's time to quit.        
               
        </member>
        <member name="M:System.Threading.Tasks.RangeWorker.FindNewWork32(System.Int32@,System.Int32@)">
            <summary>
            32 bit integer version of FindNewWork. Assumes the ranges were initialized with 32 bit values.
            </summary> 
        </member>
        <member name="T:System.Threading.Tasks.RangeManager">
            <summary>
            Represents the entire loop operation, keeping track of workers and ranges.
            </summary>
            
            The usage pattern is:
               1) The Parallel loop entry function (ForWorker) creates an instance of this class
               2) Every thread joining to service the parallel loop calls RegisterWorker to grab a 
                  RangeWorker struct to wrap the state it will need to find and execute work, 
                  and they keep interacting with that struct until the end of the loop
        </member>
        <member name="M:System.Threading.Tasks.RangeManager.#ctor(System.Int64,System.Int64,System.Int64,System.Int32)">
            <summary>
            Initializes a RangeManager with the given loop parameters, and the desired number of outer ranges
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.RangeManager.RegisterNewWorker">
            <summary>
            The function that needs to be called by each new worker thread servicing the parallel loop
            in order to get a RangeWorker struct that wraps the state for finding and executing indices
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Task`1">
            <summary>
            Represents an asynchronous operation that produces a result at some time in the future.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by this <see cref="T:System.Threading.Tasks.Task`1"/>.
            </typeparam>
            <remarks>
            <para>
            <see cref="T:System.Threading.Tasks.Task`1"/> instances may be created in a variety of ways. The most common approach is by
            using the task's <see cref="P:System.Threading.Tasks.Task`1.Factory"/> property to retrieve a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance that can be used to create tasks for several
            purposes. For example, to create a <see cref="T:System.Threading.Tasks.Task`1"/> that runs a function, the factory's StartNew
            method may be used:
            <code>
            // C# 
            var t = Task&lt;int&gt;.Factory.StartNew(() =&gt; GenerateResult());
            - or -
            var t = Task.Factory.StartNew(() =&gt; GenerateResult());
            
            ' Visual Basic 
            Dim t = Task&lt;int&gt;.Factory.StartNew(Function() GenerateResult())
            - or -
            Dim t = Task.Factory.StartNew(Function() GenerateResult())
            </code>
            </para>
            <para>
            The <see cref="T:System.Threading.Tasks.Task`1"/> class also provides constructors that initialize the task but that do not
            schedule it for execution. For performance reasons, the StartNew method should be the
            preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation
            and scheduling must be separated, the constructors may be used, and the task's 
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see>
            method may then be used to schedule the task for execution at a later time.
            </para>
            <para>
            All members of <see cref="T:System.Threading.Tasks.Task`1"/>, except for 
            <see cref="M:System.Threading.Tasks.Task.Dispose">Dispose</see>, are thread-safe
            and may be used from multiple threads concurrently.
            </para>
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Task">
            <summary>
            Represents an asynchronous operation.
            </summary>
            <remarks>
            <para>
            <see cref="T:System.Threading.Tasks.Task"/> instances may be created in a variety of ways. The most common approach is by
            using the Task type's <see cref="P:System.Threading.Tasks.Task.Factory"/> property to retrieve a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance that can be used to create tasks for several
            purposes. For example, to create a <see cref="T:System.Threading.Tasks.Task"/> that runs an action, the factory's StartNew
            method may be used:
            <code>
            // C# 
            var t = Task.Factory.StartNew(() =&gt; DoAction());
            
            ' Visual Basic 
            Dim t = Task.Factory.StartNew(Function() DoAction())
            </code>
            </para>
            <para>
            The <see cref="T:System.Threading.Tasks.Task"/> class also provides constructors that initialize the Task but that do not
            schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the
            preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation
            and scheduling must be separated, the constructors may be used, and the task's <see cref="M:System.Threading.Tasks.Task.Start"/>
            method may then be used to schedule the task for execution at a later time.
            </para>
            <para>
            All members of <see cref="T:System.Threading.Tasks.Task"/>, except for <see cref="M:System.Threading.Tasks.Task.Dispose"/>, are thread-safe
            and may be used from multiple threads concurrently.
            </para>
            <para>
            For operations that return values, the <see cref="T:System.Threading.Tasks.Task`1"/> class
            should be used.
            </para>
            <para>
            For developers implementing custom debuggers, several internal and private members of Task may be
            useful (these may change from release to release). The Int32 m_taskId field serves as the backing
            store for the <see cref="P:System.Threading.Tasks.Task.Id"/> property, however accessing this field directly from a debugger may be
            more efficient than accessing the same value through the property's getter method (the
            s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the
            Int32 m_stateFlags field stores information about the current lifecycle stage of the Task,
            information also accessible through the <see cref="P:System.Threading.Tasks.Task.Status"/> property. The m_action System.Object
            field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the
            async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the
            InternalWait method serves a potential marker for when a Task is entering a wait operation.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Task.#cctor">
            <summary>
            A type initializer that runs with the appropriate permissions.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action.
            </summary>
            <param name="action">The delegate that represents the code to execute in the Task.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.CancellationToken)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            </summary>
            <param name="action">The delegate that represents the code to execute in the Task.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            that will be assigned to the new Task.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and creation options.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the Task's behavior.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and creation options.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the Task's behavior.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and state.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="state">An object representing data to be used by the action.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.CancellationToken)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="state">An object representing data to be used by the action.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="state">An object representing data to be used by the action.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the Task's behavior.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
            </summary>
            <param name="action">The delegate that represents the code to execute in the task.</param>
            <param name="state">An object representing data to be used by the action.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the Task's behavior.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="action"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.#ctor(System.Object,System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            An internal constructor used by the factory methods on task and its descendent(s).
            This variant does not capture the ExecutionContext; it is up to the caller to do that.
            </summary>
            <param name="action">An action to execute.</param>
            <param name="state">Optional state to pass to the action.</param>
            <param name="parent">Parent of Task.</param>
            <param name="cancellationToken">A CancellationToken for the task.</param>
            <param name="scheduler">A task scheduler under which the task will run.</param>
            <param name="creationOptions">Options to control its execution.</param>
            <param name="internalOptions">Internal options to control its execution</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.TaskConstructorCore(System.Object,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Common logic used by the following internal ctors:
                Task()
                Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler)
            
            ASSUMES THAT m_creatingTask IS ALREADY SET.
            
            </summary>
            <param name="action">Action for task to execute.</param>
            <param name="state">Object to which to pass to action (may be null)</param>
            <param name="scheduler">Task scheduler on which to run thread (only used by continuation tasks).</param>
            <param name="cancellationToken">A CancellationToken for the Task.</param>
            <param name="creationOptions">Options to customize behavior of Task.</param>
            <param name="internalOptions">Internal options to customize behavior of Task.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.DeregisterCancellationCallback">
            <summary>
            Checks if we registered a CT callback during construction, and deregisters it. 
            This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed
            successfully or with an exception.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.PossiblyCaptureContext(System.Threading.StackCrawlMark2@)">
            <summary>
            Captures the ExecutionContext so long as flow isn't suppressed.
            </summary>
            <param name="stackMark">A stack crawl mark pointing to the frame of the caller.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.AddNewChild">
            <summary>
            Internal function that will be called by a new child task to add itself to 
            the children list of the parent (this).
            
            Since a child task can only be created from the thread executing the action delegate
            of this task, reentrancy is neither required nor supported. This should not be called from
            anywhere other than the task construction/initialization codepaths.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.Start">
            <summary>
            Starts the <see cref="T:System.Threading.Tasks.Task"/>, scheduling it for execution to the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
            </summary>
            <remarks>
            A task may only be started and run only once.  Any attempts to schedule a task a second time
            will result in an exception.
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
            executed, or canceled, or it may have been created in a manner that doesn't support direct
            scheduling.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.Start(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Starts the <see cref="T:System.Threading.Tasks.Task"/>, scheduling it for execution to the specified <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
            </summary>
            <remarks>
            A task may only be started and run only once. Any attempts to schedule a task a second time will
            result in an exception.
            </remarks>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> with which to associate
            and execute this task.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
            executed, or canceled, or it may have been created in a manner that doesn't support direct
            scheduling.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.RunSynchronously">
            <summary>
            Runs the <see cref="T:System.Threading.Tasks.Task"/> synchronously on the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
            </summary>
            <remarks>
            <para>
            A task may only be started and run only once. Any attempts to schedule a task a second time will
            result in an exception.
            </para>
            <para>
            Tasks executed with <see cref="M:System.Threading.Tasks.Task.RunSynchronously"/> will be associated with the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
            </para>
            <para>
            If the target scheduler does not support running this Task on the current thread, the Task will
            be scheduled for execution on the scheduler, and the current thread will block until the
            Task has completed execution.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
            executed, or canceled, or it may have been created in a manner that doesn't support direct
            scheduling.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.RunSynchronously(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Runs the <see cref="T:System.Threading.Tasks.Task"/> synchronously on the <see cref="T:System.Threading.Tasks.TaskScheduler">scheduler</see> provided.
            </summary>
            <remarks>
            <para>
            A task may only be started and run only once. Any attempts to schedule a task a second time will
            result in an exception.
            </para>
            <para>
            If the target scheduler does not support running this Task on the current thread, the Task will
            be scheduled for execution on the scheduler, and the current thread will block until the
            Task has completed execution.
            </para>
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
            executed, or canceled, or it may have been created in a manner that doesn't support direct
            scheduling.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
            </exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="scheduler"/> parameter
            is null.</exception>
            <param name="scheduler">The scheduler on which to attempt to run this task inline.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.ThrowIfDisposed">
            <summary>
            Throws an exception if the task has been disposed, and hence can no longer be accessed.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The task has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.SetCompleted">
            <summary>
            Sets the internal completion event.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.Dispose">
            <summary>
            Disposes the <see cref="T:System.Threading.Tasks.Task"/>, releasing all of its unmanaged resources.  
            </summary>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.Tasks.Task"/>, this method is not thread-safe.
            Also, <see cref="M:System.Threading.Tasks.Task.Dispose"/> may only be called on a <see cref="T:System.Threading.Tasks.Task"/> that is in one of
            the final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The exception that is thrown if the <see cref="T:System.Threading.Tasks.Task"/> is not in 
            one of the final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </exception>        
        </member>
        <member name="M:System.Threading.Tasks.Task.Dispose(System.Boolean)">
            <summary>
            Disposes the <see cref="T:System.Threading.Tasks.Task"/>, releasing all of its unmanaged resources.  
            </summary>
            <param name="disposing">
            A Boolean value that indicates whether this method is being called due to a call to <see cref="M:System.Threading.Tasks.Task.Dispose"/>.
            </param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.Tasks.Task"/>, this method is not thread-safe.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Task.ScheduleAndStart(System.Boolean)">
            <summary>
            Schedules the task for execution.
            </summary>
            <param name="needsProtection">If true, TASK_STATE_STARTED bit is turned on in
            an atomic fashion, making sure that TASK_STATE_CANCELED does not get set
            underneath us.  If false, TASK_STATE_STARTED bit is OR-ed right in.  This
            allows us to streamline things a bit for StartNew(), where competing cancellations
            are not a problem.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.AddException(System.Object)">
            <summary>
            Adds an exception to the list of exceptions this task has thrown.
            </summary>
            <param name="exceptionObject">An object representing either an Exception or a collection of Exceptions.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.GetExceptions(System.Boolean)">
            <summary>
            Returns a list of exceptions by aggregating the holder's contents. Or null if
            no exceptions have been thrown.
            </summary>
            <param name="includeTaskCanceledExceptions">Whether to include a TCE if cancelled.</param>
            <returns>An aggregate exception, or null if no exceptions have been caught.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Task.ThrowIfExceptional(System.Boolean)">
            <summary>
            Throws an aggregate exception if the task contains exceptions. 
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.UpdateExceptionObservedStatus">
            <summary>
            Checks whether this is an attached task, and whether we are being called by the parent task.
            And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that.
            
            This is meant to be used internally when throwing an exception, and when WaitAll is gathering 
            exceptions for tasks it waited on. If this flag gets set, the implicit wait on children 
            will skip exceptions to prevent duplication.
            
            This should only be called when this task has completed with an exception
            
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.Finish(System.Boolean)">
             <summary>
             Signals completion of this particular task.
            
             The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the
             full execution of the user delegate. 
             
             If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to
             a cancellation request, or because this task is a promise style Task). In this case, the steps
             involving child tasks (i.e. WaitForChildren) will be skipped.
             
             </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.FinishStageTwo">
            <summary>
            FinishStageTwo is to be executed as soon as we known there are no more children to complete. 
            It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit)
                         ii) or on the thread that executed the last child.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.FinishStageThree">
            <summary>
            Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations.
            This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic()
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.ProcessChildCompletion(System.Threading.Tasks.Task)">
            <summary>
            This is called by children of this task when they are completed.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.AddExceptionsFromChildren">
            <summary>
            This is to be called just before the task does its final state transition. 
            It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.FinishThreadAbortedTask(System.Boolean,System.Boolean)">
            <summary>
            Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException
            This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath
            such as inlined continuations
            </summary>
            <param name="bTAEAddedToExceptionHolder">
            Indicates whether the ThreadAbortException was added to this task's exception holder. 
            This should always be true except for the case of non-root self replicating task copies.
            </param>
            <param name="delegateRan">Whether the delegate was executed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.Execute">
            <summary>
            Executes the task. This method will only be called once, and handles bookeeping associated with
            self-replicating tasks, in addition to performing necessary exception marshaling.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The task has already been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.System#Threading#Tasks#IThreadPoolWorkItem#ExecuteWorkItem">
            <summary>
            IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it.
            
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.System#Threading#Tasks#IThreadPoolWorkItem#MarkAborted(System.Threading.ThreadAbortException)">
            <summary>
            The ThreadPool calls this if a ThreadAbortException is thrown while trying to execute this workitem.  This may occur
            before Task would otherwise be able to observe it.  
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.ExecuteEntry(System.Boolean)">
            <summary>
            Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread.
            Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. 
            
            </summary>
            <param name="bPreventDoubleExecution"> Performs atomic updates to prevent double execution. Should only be set to true
            in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. </param>
        </member>
        <member name="M:System.Threading.Tasks.Task.InnerInvoke">
            <summary>
            The actual code which invokes the body of the task. This can be overriden in derived types.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.InnerInvokeWithArg(System.Threading.Tasks.Task)">
            <summary>
            Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that
            the Parallel Debugger can discover the actual task being invoked. 
            Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the
            childTask. And the debugger needs to discover the childTask, so we pass that down as an argument.
            The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this
            function appears on the callstack.
            </summary>
            <param name="childTask"></param>
        </member>
        <member name="M:System.Threading.Tasks.Task.HandleException(System.Exception)">
            <summary>
            Performs whatever handling is necessary for an unhandled exception. Normally
            this just entails adding the exception to the holder object. 
            </summary>
            <param name="unhandledException">The exception that went unhandled.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.Wait">
            <summary>
            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
            </summary>
            <exception cref="T:System.AggregateException">
            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during
            the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.Wait(System.TimeSpan)">
            <summary>
            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
            </summary>
            <param name="timeout">
            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>
            true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise, false.
            </returns>
            <exception cref="T:System.AggregateException">
            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
            infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.Wait(System.Threading.CancellationToken)">
            <summary>
            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
            </summary>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the task to complete.
            </param>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
            <exception cref="T:System.AggregateException">
            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/>
            has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.Wait(System.Int32)">
            <summary>
            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
            </summary>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.</param>
            <returns>true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise,
            false.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
            <exception cref="T:System.AggregateException">
            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/>
            has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.Wait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
            </summary>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.
            </param>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the task to complete.
            </param>
            <returns>
            true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise, false.
            </returns>
            <exception cref="T:System.AggregateException">
            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/>
            has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.InternalWait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where 
            the current context is known or cached.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.InternalCancel(System.Boolean)">
            <summary>
            Cancels the <see cref="T:System.Threading.Tasks.Task"/>.
            </summary>
            <param name="bCancelNonExecutingOnly"> Indiactes whether we should only cancel non-invoked tasks.
            For the default scheduler this option will only be serviced through TryDequeue.
            For custom schedulers we also attempt an atomic state transition.</param>
            <returns>true if the task was successfully canceled; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Threading.Tasks.Task"/>
            has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.SetCancellationAcknowledged">
            <summary>
            Sets the task's cancellation acknowledged flag.
            </summary>    
        </member>
        <member name="M:System.Threading.Tasks.Task.FinishContinuations">
            <summary>
            Runs all of the continuations, as appropriate.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWithIsRightKind(System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Helper function to determine whether the current task is in the state desired by the
            continuation kind under evaluation. Three possibilities exist: the task failed with
            an unhandled exception (OnFailed), the task was canceled before running (OnAborted),
            or the task completed successfully (OnCompletedSuccessfully).  Note that the last
            one includes completing due to cancellation.
            </summary>
            <param name="options">The continuation options under evaluation.</param>
            <returns>True if the continuation should be run given the task's current state.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task})">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken"> The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes.  When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
            instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
            execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
            are not met, the continuation task will be canceled instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0})">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes.  When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
            instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
            </summary>
            <typeparam name="TResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
            execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
            are not met, the continuation task will be canceled instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions(System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskCreationOptions@,System.Threading.Tasks.InternalTaskOptions@)">
            <summary>
            Converts TaskContinuationOptions to TaskCreationOptions, and also does
            some validity checking along the way.
            </summary>
            <param name="continuationOptions">Incoming TaskContinuationOptions</param>
            <param name="creationOptions">Outgoing TaskCreationOptions</param>
            <param name="internalOptions">Outgoing InternalTaskOptions</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Registers the continuation and possibly runs it (if the task is already finished).
            </summary>
            <param name="continuationTask">The continuation task itself.</param>
            <param name="scheduler">TaskScheduler with which to associate continuation task.</param>
            <param name="options">Restrictions on when the continuation becomes active.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[])">
            <summary>
            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.AggregateException">
            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.TimeSpan)">
            <summary>
            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <returns>
            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
            otherwise, false.
            </returns>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="timeout">
            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.AggregateException">
            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
            infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32)">
            <summary>
            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <returns>
            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
            otherwise, false.
            </returns>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.</param>
            <param name="tasks">An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.AggregateException">
            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Threading.CancellationToken)">
            <summary>
            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <returns>
            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
            otherwise, false.
            </returns>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the tasks to complete.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.AggregateException">
            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)">
            <summary>
            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <returns>
            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
            otherwise, false.
            </returns>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.
            </param>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the tasks to complete.
            </param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.AggregateException">
            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAllSTAAnd64Aware(System.Threading.WaitHandle[],System.Int32,System.Threading.CancellationToken)">
            <summary>
            Waits for a set of handles in a STA-aware way.  In other words, it will wait for each
            of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx
            can't do a true wait-all due to its hidden message queue event. This is not atomic,
            of course, but we only wait on one-way (MRE) events anyway so this is OK.
            </summary>
            <param name="waitHandles">An array of wait handles to wait on.</param>
            <param name="millisecondsTimeout">The timeout to use during waits.</param>
            <param name="cancellationToken">The cancellationToken that enables a wait to be canceled.</param>
            <returns>True if all waits succeeded, false if a timeout occurred.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Task.FastWaitAll(System.Threading.Tasks.Task[])">
            <summary>
            Internal WaitAll implementation which is meant to be used with small number of tasks,
            optimized for Parallel.Invoke and other structured primitives.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.AddExceptionsForCompletedTask(System.Collections.Generic.List{System.Exception}@,System.Threading.Tasks.Task)">
            <summary>
            This internal function is only meant to be called by WaitAll()
            If the completed task is canceled or it has other exceptions, here we will add those
            into the passed in exception list (which will be lazily initialized here).
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[])">
            <summary>
            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <returns>The index of the completed task in the <paramref name="tasks"/> array argument.</returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.TimeSpan)">
            <summary>
            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="timeout">
            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>
            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
            timeout occurred.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
            infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Threading.CancellationToken)">
            <summary>
            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for a task to complete.
            </param>
            <returns>
            The index of the completed task in the <paramref name="tasks"/> array argument.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32)">
            <summary>
            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.
            </param>
            <returns>
            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
            timeout occurred.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)">
            <summary>
            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
            </summary>
            <param name="tasks">
            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
            </param>
            <param name="millisecondsTimeout">
            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
            wait indefinitely.
            </param>
            <param name="cancellationToken">
            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for a task to complete.
            </param>
            <returns>
            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
            timeout occurred.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="tasks"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="tasks"/> argument contains a null element.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
            infinite time-out.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The <paramref name="cancellationToken"/> was canceled.
            </exception>
        </member>
        <member name="P:System.Threading.Tasks.Task.Id">
            <summary>
            Gets a unique ID for this <see cref="T:System.Threading.Tasks.Task">Task</see> instance.
            </summary>
            <remarks>
            Task IDs are assigned on-demand and do not necessarily represent the order in the which Task
            instances were created.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task.CurrentId">
            <summary>
            Returns the unique ID of the currently executing <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.InternalCurrent">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.Task">Task</see> instance currently executing, or
            null if none exists.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.CurrentStackGuard">
            <summary>
            Gets the StackGuard object assigned to the current thread.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.Exception">
            <summary>
            Gets the <see cref="T:System.AggregateException">Exception</see> that caused the <see cref="T:System.Threading.Tasks.Task">Task</see> to end prematurely. If the <see cref="T:System.Threading.Tasks.Task">Task</see> completed successfully or has not yet thrown any
            exceptions, this will return null.
            </summary>
            <remarks>
            Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a
            <see cref="T:System.AggregateException"/> in calls to <see cref="M:System.Threading.Tasks.Task.Wait">Wait</see>
            or in accesses to the <see cref="P:System.Threading.Tasks.Task.Exception"/> property.  Any exceptions not observed by the time
            the Task instance is garbage collected will be propagated on the finalizer thread.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task">Task</see>
            has been disposed.
            </exception>
        </member>
        <member name="P:System.Threading.Tasks.Task.Status">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> of this Task. 
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsCanceled">
            <summary>
            Gets whether this <see cref="T:System.Threading.Tasks.Task">Task</see> instance has completed
            execution due to being canceled.
            </summary>
            <remarks>
            A <see cref="T:System.Threading.Tasks.Task">Task</see> will complete in Canceled state either if its <see cref="P:System.Threading.Tasks.Task.CancellationToken">CancellationToken</see> 
            was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on 
            its already signaled CancellationToken by throwing an 
            <see cref="T:System.OperationCanceledException">OperationCanceledException</see> that bears the same 
            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsCancellationRequested">
            <summary>
            Returns true if this task has a cancellation token and it was signaled.
            To be used internally in execute entry codepaths.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.CancellationToken">
            <summary>
            This internal property provides access to the CancellationToken that was set on the task 
            when it was constructed.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsCancellationAcknowledged">
            <summary>
            Gets whether this <see cref="T:System.Threading.Tasks.Task"/> threw an OperationCanceledException while its CancellationToken was signaled.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsCompleted">
            <summary>
            Gets whether this <see cref="T:System.Threading.Tasks.Task">Task</see> has completed.
            </summary>
            <remarks>
            <see cref="P:System.Threading.Tasks.Task.IsCompleted"/> will return true when the Task is in one of the three
            final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsDisposed">
            <summary>
            Checks whether this task has been disposed.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.CreationOptions">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used
            to create this task.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.System#IAsyncResult#AsyncWaitHandle">
            <summary>
            Gets a <see cref="T:System.Threading.WaitHandle"/> that can be used to wait for the task to
            complete.
            </summary>
            <remarks>
            Using the wait functionality provided by <see cref="M:System.Threading.Tasks.Task.Wait"/>
            should be preferred over using <see cref="P:System.IAsyncResult.AsyncWaitHandle"/> for similar
            functionality.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
            </exception>
        </member>
        <member name="P:System.Threading.Tasks.Task.AsyncState">
            <summary>
            Gets the state object supplied when the <see cref="T:System.Threading.Tasks.Task">Task</see> was created,
            or null if none was supplied.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.System#IAsyncResult#CompletedSynchronously">
            <summary>
            Gets an indication of whether the asynchronous operation completed synchronously.
            </summary>
            <value>true if the asynchronous operation completed synchronously; otherwise, false.</value>
        </member>
        <member name="P:System.Threading.Tasks.Task.ExecutingTaskScheduler">
            <summary>
            Provides access to the TaskScheduler responsible for executing this Task.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.Factory">
            <summary>
            Provides access to factory methods for creating <see cref="T:System.Threading.Tasks.Task"/> and <see cref="T:System.Threading.Tasks.Task`1"/> instances.
            </summary>
            <remarks>
            The factory returned from <see cref="P:System.Threading.Tasks.Task.Factory"/> is a default instance
            of <see cref="T:System.Threading.Tasks.TaskFactory"/>, as would result from using
            the default constructor on TaskFactory.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task.CompletedEvent">
            <summary>
            Provides an event that can be used to wait for completion.
            Only called by Wait*(), which means that we really do need to instantiate a completion event.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsSelfReplicatingRoot">
            <summary>
            Determines whether this is the root task of a self replicating group.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsChildReplica">
            <summary>
            Determines whether the task is a replica itself.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.ExceptionRecorded">
            <summary>
            The property formerly known as IsFaulted.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsFaulted">
            <summary>
            Gets whether the <see cref="T:System.Threading.Tasks.Task"/> completed due to an unhandled exception.
            </summary>
            <remarks>
            If <see cref="P:System.Threading.Tasks.Task.IsFaulted"/> is true, the Task's <see cref="P:System.Threading.Tasks.Task.Status"/> will be equal to
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">TaskStatus.Faulted</see>, and its
            <see cref="P:System.Threading.Tasks.Task.Exception"/> property will be non-null.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsExceptionObservedByParent">
            <summary>
            Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set,
            This will only be used by the implicit wait to prevent double throws
            
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Task.IsDelegateInvoked">
            <summary>
            Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Task.TaskContinuation">
            <summary>
            A structure to hold continuation information.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Task.TaskContinuation.#ctor(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Constructs a new continuation structure.
            </summary>
            <param name="task">The task to be activated.</param>
            <param name="options">The continuation options.</param>
            <param name="scheduler">The scheduler to use for the continuation.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task.TaskContinuation.Run(System.Threading.Tasks.Task,System.Boolean)">
            <summary>
            Invokes the continuation for the target completion task.
            </summary>
            <param name="completedTask">The completed task.</param>
            <param name="bCanInlineContinuationTask">Whether the continuation can be inlined.</param>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0})">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.CancellationToken)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to this task.</param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and creation options.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the task's behavior.
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and creation options.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the task's behavior.
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and state.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="state">An object representing data to be used by the action.</param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="state">An object representing data to be used by the function.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to the new task.</param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="state">An object representing data to be used by the function.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the task's behavior.
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
            </summary>
            <param name="function">
            The delegate that represents the code to execute in the task. When the function has completed,
            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
            </param>
            <param name="state">An object representing data to be used by the function.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to the new task.</param>
            <param name="creationOptions">
            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
            customize the task's behavior.
            </param>
            <exception cref="T:System.ArgumentException">
            The <paramref name="function"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a new future object.
            </summary>
            <param name="parent">The parent task for this future.</param>
            <param name="valueSelector">A function that yields the future value.</param>
            <param name="scheduler">The task scheduler which will be used to execute the future.</param>
            <param name="cancellationToken">The CancellationToken for the task.</param>
            <param name="creationOptions">Options to control the future's behavior.</param>
            <param name="internalOptions">Internal options to control the future's behavior.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="creationOptions"/> argument specifies
            a SelfReplicating <see cref="T:System.Threading.Tasks.Task`1"/>, which is illegal."/&gt;.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a new future object.
            </summary>
            <param name="parent">The parent task for this future.</param>
            <param name="state">An object containing data to be used by the action; may be null.</param>
            <param name="valueSelector">A function that yields the future value.</param>
            <param name="cancellationToken">The CancellationToken for the task.</param>
            <param name="scheduler">The task scheduler which will be used to execute the future.</param>
            <param name="creationOptions">Options to control the future's behavior.</param>
            <param name="internalOptions">Internal options to control the future's behavior.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="creationOptions"/> argument specifies
            a SelfReplicating <see cref="T:System.Threading.Tasks.Task`1"/>, which is illegal."/&gt;.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.InvokeFuture(System.Object)">
            <summary>
            Evaluates the value selector of the Task which is passed in as an object and stores the result.
            </summary>        
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}})">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
            instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <param name="continuationAction">
            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
            execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
            are not met, the continuation task will be canceled instead of scheduled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationAction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0})">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <typeparam name="TNewResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
            task has completed, whether it completes due to running to completion successfully, faulting due
            to an unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <typeparam name="TNewResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
            task has completed, whether it completes due to running to completion successfully, faulting due
            to an unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <typeparam name="TNewResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes.  When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <typeparam name="TNewResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
            passed the completed task as an argument.
            </param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            <para>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
            task has completed, whether it completes due to running to completion successfully, faulting due
            to an unhandled exception, or exiting out early due to being canceled.
            </para>
            <para>
            The <paramref name="continuationFunction"/>, when executed, should return a <see cref="T:System.Threading.Tasks.Task`1"/>. This task's completion state will be transferred to the task returned
            from the ContinueWith call.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
            </summary>
            <typeparam name="TNewResult">
            The type of the result produced by the continuation.
            </typeparam>
            <param name="continuationFunction">
            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be passed as
            an argument this completed task.
            </param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="continuationOptions">
            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
            </param>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
            execution.
            </param>
            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
            <remarks>
            <para>
            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
            completed, whether it completes due to running to completion successfully, faulting due to an
            unhandled exception, or exiting out early due to being canceled.
            </para>
            <para>
            The <paramref name="continuationFunction"/>, when executed, should return a <see cref="T:System.Threading.Tasks.Task`1"/>.
            This task's completion state will be transferred to the task returned from the
            ContinueWith call.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="continuationFunction"/> argument is null.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="scheduler"/> argument is null.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="P:System.Threading.Tasks.Task`1.Result">
            <summary>
            Gets the result value of this <see cref="T:System.Threading.Tasks.Task`1"/>.
            </summary>
            <remarks>
            The get accessor for this property ensures that the asynchronous operation is complete before
            returning. Once the result of the computation is available, it is stored and will be returned
            immediately on later calls to <see cref="P:System.Threading.Tasks.Task`1.Result"/>.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Task`1.Factory">
            <summary>
            Provides access to factory methods for creating <see cref="T:System.Threading.Tasks.Task`1"/> instances.
            </summary>
            <remarks>
            The factory returned from <see cref="P:System.Threading.Tasks.Task`1.Factory"/> is a default instance
            of <see cref="T:System.Threading.Tasks.TaskFactory`1"/>, as would result from using
            the default constructor on the factory type.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskFactory`1">
            <summary>
            Provides support for creating and scheduling
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task{TResult}</see> objects.
            </summary>
            <typeparam name="TResult">The type of the results that are available though 
            the <see cref="T:System.Threading.Tasks.Task{TResult}">Task{TResult}</see> objects that are associated with 
            the methods in this class.</typeparam>
            <remarks>
            <para>
            There are many common patterns for which tasks are relevant. The <see cref="T:System.Threading.Tasks.TaskFactory`1"/>
            class encodes some of these patterns into methods that pick up default settings, which are
            configurable through its constructors.
            </para>
            <para>
            A default instance of <see cref="T:System.Threading.Tasks.TaskFactory`1"/> is available through the
            <see cref="P:System.Threading.Tasks.Task`1.Factory">Task{TResult}.Factory</see> property.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the default configuration.
            </summary>
            <remarks>
            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with a default configuration. The
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.CancellationToken)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the default configuration.
            </summary>
            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned 
            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
            while calling the factory methods.</param>
            <remarks>
            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with a default configuration. The
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
            </summary>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler">
            TaskScheduler</see> to use to schedule any tasks created with this TaskFactory{TResult}. A null value
            indicates that the current TaskScheduler should be used.
            </param>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to <paramref name="scheduler"/>, unless it's null, in which case the property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
            </summary>
            <param name="creationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
            TaskCreationOptions</see> to use when creating tasks with this TaskFactory{TResult}.
            </param>
            <param name="continuationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory{TResult}.
            </param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The exception that is thrown when the
            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
            argument specifies an invalid value.
            </exception>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
            the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to the
            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
            </summary>
            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned 
            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
            while calling the factory methods.</param>
            <param name="creationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
            TaskCreationOptions</see> to use when creating tasks with this TaskFactory{TResult}.
            </param>
            <param name="continuationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory{TResult}.
            </param>
            <param name="scheduler">
            The default <see cref="T:System.Threading.Tasks.TaskScheduler">
            TaskScheduler</see> to use to schedule any Tasks created with this TaskFactory{TResult}. A null value
            indicates that TaskScheduler.Current should be used.
            </param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The exception that is thrown when the
            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
            argumentspecifies an invalid value.
            </exception>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
            the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to
            <paramref name="scheduler"/>, unless it's null, in which case the property is initialized to the
            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0})">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
            Task{TResult}</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
            Task{TResult}</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0})">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref name="asyncResult"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the task that executes the end method.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``3(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,``2,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``3(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the <paramref
            name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory`1.CancellationToken">
            <summary>
            Gets the default <see cref="T:System.Threading.CancellationToken">CancellationToken</see> of this
            TaskFactory.
            </summary>
            <remarks>
            This property returns the default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to all 
            tasks created by this factory unless another CancellationToken value is explicitly specified 
            during the call to the factory methods.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory`1.Scheduler">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> of this
            TaskFactory{TResult}.
            </summary>
            <remarks>
            This property returns the default scheduler for this factory.  It will be used to schedule all 
            tasks unless another scheduler is explicitly specified during calls to this factory's methods.  
            If null, <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see> 
            will be used.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory`1.CreationOptions">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions
            </see> value of this TaskFactory{TResult}.
            </summary>
            <remarks>
            This property returns the default creation options for this factory.  They will be used to create all 
            tasks unless other options are explicitly specified during calls to this factory's methods.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory`1.ContinuationOptions">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskContinuationOptions
            </see> value of this TaskFactory{TResult}.
            </summary>
            <remarks>
            This property returns the default continuation options for this factory.  They will be used to create 
            all continuation tasks unless other options are explicitly specified during calls to this factory's methods.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskStatus">
            <summary>
            Represents the current stage in the lifecycle of a <see cref="T:System.Threading.Tasks.Task"/>.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.Created">
            <summary> 
            The task has been initialized but has not yet been scheduled.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.WaitingForActivation">
            <summary> 
            The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.WaitingToRun">
            <summary>
            The task has been scheduled for execution but has not yet begun executing.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.Running">
            <summary>
            The task is running but has not yet completed.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.WaitingForChildrenToComplete">
            <summary>
            The task has finished executing and is implicitly waiting for
            attached child tasks to complete.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.RanToCompletion">
            <summary>
            The task completed execution successfully.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.Canceled">
            <summary>
            The task acknowledged cancellation by throwing an OperationCanceledException with its own CancellationToken
            while the token was in signaled state, or the task's CancellationToken was already signaled before the
            task started executing.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskStatus.Faulted">
            <summary>
            The task completed due to an unhandled exception.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ParallelForReplicaTask.SaveStateForNextReplica(System.Object)">
             <summary>
             In some cases a replica will want to quit prematurely (ie. before finishing a chunk of work it may have grabbed)
             yet they will need the next replica to pick things up from where they left. This API is used to save such state.
            
             Calling it is also the only way to record a premature exit.
             </summary>
             <param name="stateForNextReplica"></param>
        </member>
        <member name="T:System.Threading.Tasks.TaskCreationOptions">
            <summary>
            Specifies flags that control optional behavior for the creation and execution of tasks.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskCreationOptions.None">
            <summary>
            Specifies that the default behavior should be used.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskCreationOptions.PreferFairness">
            <summary>
            A hint to a <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> to schedule a
            task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to
            be run sooner, and tasks scheduled later will be more likely to be run later.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskCreationOptions.LongRunning">
            <summary>
            Specifies that a task will be a long-running, course-grained operation. It provides a hint to the
            <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> that oversubscription may be
            warranted. 
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskCreationOptions.AttachedToParent">
            <summary>
            Specifies that a task is attached to a parent in the task hierarchy.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.InternalTaskOptions">
            <summary>
            Task creation flags which are only used internally.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.InternalTaskOptions.None">
            <summary> Specifies "No internal task options" </summary>
        </member>
        <member name="F:System.Threading.Tasks.InternalTaskOptions.InternalOptionsMask">
            <summary>Used to filter out internal vs. public task creation options.</summary>
        </member>
        <member name="F:System.Threading.Tasks.InternalTaskOptions.QueuedByRuntime">
            <summary>Specifies that the task will be queued by the runtime before handing it over to the user. 
            This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks.</summary>
        </member>
        <member name="T:System.Threading.Tasks.TaskContinuationOptions">
            <summary>
            Specifies flags that control optional behavior for the creation and execution of continuation tasks.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.None">
            <summary>
            Default = "Continue on any, no task options, run asynchronously"
            Specifies that the default behavior should be used.  Continuations, by default, will
            be scheduled when the antecedent task completes, regardless of the task's final <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see>.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.PreferFairness">
            <summary>
            A hint to a <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> to schedule a
            task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to
            be run sooner, and tasks scheduled later will be more likely to be run later.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.LongRunning">
            <summary>
            Specifies that a task will be a long-running, course-grained operation.  It provides
            a hint to the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> that
            oversubscription may be warranted.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.AttachedToParent">
            <summary>
            Specifies that a task is attached to a parent in the task hierarchy.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnRanToCompletion">
            <summary>
            Specifies that the continuation task should not be scheduled if its antecedent ran to completion.
            This option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnFaulted">
            <summary>
            Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled
            exception. This option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnCanceled">
            <summary>
            Specifies that the continuation task should not be scheduled if its antecedent was canceled. This
            option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion">
            <summary>
            Specifies that the continuation task should be scheduled only if its antecedent ran to
            completion. This option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted">
            <summary>
            Specifies that the continuation task should be scheduled only if its antecedent threw an
            unhandled exception. This option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">
            <summary>
            Specifies that the continuation task should be scheduled only if its antecedent was canceled.
            This option is not valid for multi-task continuations.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">
            <summary>
            Specifies that the continuation task should be executed synchronously. With this option
            specified, the continuation will be run on the same thread that causes the antecedent task to
            transition into its final state. If the antecedent is already complete when the continuation is
            created, the continuation will run on the thread creating the continuation.  Only very
            short-running continuations should be executed synchronously.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.StackGuard">
            <summary>
            Internal helper class to keep track of stack depth and decide whether we should inline or not.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.StackGuard.TryBeginInliningScope">
            <summary>
            This method needs to be called before attempting inline execution on the current thread. 
            If false is returned, it means we are too close to the end of the stack and should give up inlining.
            Each call to TryBeginInliningScope() that returns true must be matched with a 
            call to EndInliningScope() regardless of whether inlining actually took place.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.StackGuard.EndInliningScope">
            <summary>
            This needs to be called once for each previous successful TryBeginInliningScope() call after
            inlining related logic runs.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.TaskCanceledException">
            <summary>
            Represents an exception used to communicate task cancellation.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> class.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
            class with a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
            class with a specified error message and a reference to the inner exception that is the cause of
            this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.Threading.Tasks.Task)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> class
            with a reference to the <see cref="T:System.Threading.Tasks.Task"/> that has been canceled.
            </summary>
            <param name="task">A task that has been canceled.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
            class with serialized data.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination. </param>
        </member>
        <member name="P:System.Threading.Tasks.TaskCanceledException.Task">
            <summary>
            Gets the task associated with this exception.
            </summary>
            <remarks>
            It is permissible for no Task to be associated with a 
            <see cref="T:System.Threading.Tasks.TaskCanceledException"/>, in which case
            this property will return null.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskExceptionHolder">
            <summary>
            An exception holder manages a list of exceptions for one particular task.
            It offers the ability to aggregate, but more importantly, also offers intrinsic
            support for propagating unhandled exceptions that are never observed. It does
            this by aggregating and throwing if the holder is ever GC'd without the holder's
            contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc).
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.#ctor(System.Threading.Tasks.Task)">
            <summary>
            Creates a new holder; it will be registered for finalization.
            </summary>
            <param name="task">The task this holder belongs to.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.Finalize">
            <summary>
            A finalizer that repropagates unhandled exceptions.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.Add(System.Object)">
            <summary>
            Add an exception to the internal list.  This will ensure the holder is
            in the proper state (handled/unhandled) depending on the list's contents.
            </summary>
            <param name="exceptionObject">An exception object (either an Exception or an 
            IEnumerable{Exception}) to add to the list.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.MarkAsUnhandled">
            <summary>
            A private helper method that ensures the holder is considered
            unhandled, i.e. it is registered for finalization.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.MarkAsHandled(System.Boolean)">
            <summary>
            A private helper method that ensures the holder is considered
            handled, i.e. it is not registered for finalization.
            </summary>
            <param name="calledFromFinalizer">Whether this is called from the finalizer thread.</param> 
        </member>
        <member name="M:System.Threading.Tasks.TaskExceptionHolder.CreateExceptionObject(System.Boolean,System.Exception)">
            <summary>
            Allocates a new aggregate exception and adds the contents of the list to
            it. By calling this method, the holder assumes exceptions to have been
            "observed", such that the finalization check will be subsequently skipped.
            </summary>
            <param name="calledFromFinalizer">Whether this is being called from a finalizer.</param>
            <param name="includeThisException">An extra exception to be included (optionally).</param>
            <returns>The aggregate exception to throw.</returns>
        </member>
        <member name="T:System.Threading.Tasks.TaskFactory">
            <summary>
            Provides support for creating and scheduling
            <see cref="T:System.Threading.Tasks.Task">Tasks</see>.
            </summary>
            <remarks>
            <para>
            There are many common patterns for which tasks are relevant. The <see cref="T:System.Threading.Tasks.TaskFactory"/>
            class encodes some of these patterns into methods that pick up default settings, which are
            configurable through its constructors.
            </para>
            <para>
            A default instance of <see cref="T:System.Threading.Tasks.TaskFactory"/> is available through the
            <see cref="P:System.Threading.Tasks.Task.Factory">Task.Factory</see> property.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.#ctor">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the default configuration.
            </summary>
            <remarks>
            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with a default configuration. The
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.CancellationToken)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
            </summary>
            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned 
            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
            while calling the factory methods.</param>
            <remarks>
            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with a default configuration. The
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
            </summary>
            <param name="scheduler">
            The <see cref="T:System.Threading.Tasks.TaskScheduler">
            TaskScheduler</see> to use to schedule any tasks created with this TaskFactory. A null value
            indicates that the current TaskScheduler should be used.
            </param>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
            initialized to <paramref name="scheduler"/>, unless it's null, in which case the property is
            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
            </summary>
            <param name="creationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
            TaskCreationOptions</see> to use when creating tasks with this TaskFactory.
            </param>
            <param name="continuationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory.
            </param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The exception that is thrown when the
            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
            argument specifies an invalid value.
            </exception>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
            the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to the
            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
            </summary>
            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned 
            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
            while calling the factory methods.</param>
            <param name="creationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
            TaskCreationOptions</see> to use when creating tasks with this TaskFactory.
            </param>
            <param name="continuationOptions">
            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory.
            </param>
            <param name="scheduler">
            The default <see cref="T:System.Threading.Tasks.TaskScheduler">
            TaskScheduler</see> to use to schedule any Tasks created with this TaskFactory. A null value
            indicates that TaskScheduler.Current should be used.
            </param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The exception that is thrown when the
            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
            argumentspecifies an invalid value.
            </exception>
            <remarks>
            With this constructor, the
            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
            the
            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to
            <paramref name="scheduler"/>, unless it's null, in which case the property is initialized to the
            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/> 
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors 
            and then calling 
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.  However,
            unless creation and scheduling must be separated, StartNew is the recommended
            approach for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/> 
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors 
            and then calling 
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.  However,
            unless creation and scheduling must be separated, StartNew is the recommended
            approach for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="state">An object containing data to be used by the <paramref name="action"/>
            delegate.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="state">An object containing data to be used by the <paramref name="action"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="state">An object containing data to be used by the <paramref name="action"/>
            delegate.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
            </summary>
            <param name="action">The action delegate to execute asynchronously.</param>
            <param name="state">An object containing data to be used by the <paramref name="action"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
            then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0})">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
            Task{TResult}</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.CancellationToken)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="function">A function delegate that returns the future result to be available through
            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">An object containing data to be used by the <paramref name="function"/>
            delegate.</param>
            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
            created
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
            Task{TResult}</see>.</param>
            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
            argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
            of its constructors and then calling
            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
            However, unless creation and scheduling must be separated, StartNew is the recommended approach
            for both simplicity and performance.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult})">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The action delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
            operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The action delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
            operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The action delegate that processes the completed <paramref name="asyncResult"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the task that executes the end method.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
            operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,``2,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
            and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
            asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0})">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0},System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref
            name="asyncResult"/>.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
            <paramref name="endMethod"/>.</param>
            <param name="endMethod">The function delegate that processes the completed <paramref name="asyncResult"/>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the task that executes the end method.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="asyncResult"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
            asynchronous operation.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``0},System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``1},``0,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``1},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``2},``0,``1,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``2},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``4(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``3},``0,``1,``2,System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``4(System.Func{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``3},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
            begin and end methods that conform to the Asynchronous Programming Model pattern.
            </summary>
            <typeparam name="TArg1">The type of the first argument passed to the <paramref
            name="beginMethod"/> delegate.</typeparam>
            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
            delegate.</typeparam>
            <typeparam name="TResult">The type of the result available through the
            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
            </typeparam>
            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
            delegate.</param>
            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
            delegate.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="beginMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="endMethod"/> argument is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
            value.</exception>
            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
            represents the asynchronous operation.</returns>
            <remarks>
            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.CheckFromAsyncOptions(System.Threading.Tasks.TaskCreationOptions,System.Boolean)">
            <summary>
            Check validity of options passed to FromAsync method
            </summary>
            <param name="creationOptions">The options to be validated.</param>
            <param name="hasBeginMethod">determines type of FromAsync method that called this method</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in 
            the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref
            name="continuationFunction"/>
            delegate and associated with the created <see
            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref
            name="continuationFunction"/>
            delegate and associated with the created <see
            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of a set of provided Tasks.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue.</param>
            <param name="continuationFunction">The function delegate to execute when all tasks in the
            <paramref name="tasks"/> array have completed.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAll.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the <paramref
            name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref
            name="continuationFunction"/>
            delegate and associated with the created <see
            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref
            name="continuationFunction"/>
            delegate and associated with the created <see
            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationFunction">The function delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationFunction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}})">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.Tasks.TaskContinuationOptions)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
            <summary>
            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
            that will be started upon the completion of any Task in the provided set.
            </summary>
            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
            <param name="continuationAction">The action delegate to execute when one task in the
            <paramref name="tasks"/> array completes.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
            that will be assigned to the new continuation task.</param>
            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
            TaskContinuationOptions</see> value that controls the behavior of
            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="tasks"/> array is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="continuationAction"/> argument is null.</exception>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
            <paramref name="scheduler"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array contains a null value.</exception>
            <exception cref="T:System.ArgumentException">The exception that is thrown when the
            <paramref name="tasks"/> array is empty.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
            value.</exception>
            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
            has already been disposed.
            </exception>
            <remarks>
            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
            will be executed, are illegal with ContinueWhenAny.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory.CancellationToken">
            <summary>
            Gets the default <see cref="T:System.Threading.CancellationToken">CancellationToken</see> of this
            TaskFactory.
            </summary>
            <remarks>
            This property returns the default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to all 
            tasks created by this factory unless another CancellationToken value is explicitly specified 
            during the call to the factory methods.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory.Scheduler">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> of this
            TaskFactory.
            </summary>
            <remarks>
            This property returns the default scheduler for this factory.  It will be used to schedule all 
            tasks unless another scheduler is explicitly specified during calls to this factory's methods.  
            If null, <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see> 
            will be used.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory.CreationOptions">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions
            </see> value of this TaskFactory.
            </summary>
            <remarks>
            This property returns the default creation options for this factory.  They will be used to create all 
            tasks unless other options are explicitly specified during calls to this factory's methods.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskFactory.ContinuationOptions">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskContinuationOptions
            </see> value of this TaskFactory.
            </summary>
            <remarks>
            This property returns the default continuation options for this factory.  They will be used to create 
            all continuation tasks unless other options are explicitly specified during calls to this factory's methods.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskCompletionSource`1">
            <summary>
            Represents the producer side of a <see cref="T:System.Threading.Tasks.Task{TResult}"/> unbound to a
            delegate, providing access to the consumer side through the <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> property.
            </summary>
            <remarks>
            <para>
            It is often the case that a <see cref="T:System.Threading.Tasks.Task{TResult}"/> is desired to
            represent another asynchronous operation.
            <see cref="T:System.Threading.Tasks.TaskCompletionSource`1">TaskCompletionSource</see> is provided for this purpose. It enables
            the creation of a task that can be handed out to consumers, and those consumers can use the members
            of the task as they would any other. However, unlike most tasks, the state of a task created by a
            TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the
            completion of the external asynchronous operation to be propagated to the underlying Task. The
            separation also ensures that consumers are not able to transition the state without access to the
            corresponding TaskCompletionSource.
            </para>
            <para>
            All members of <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/> are thread-safe
            and may be used from multiple threads concurrently.
            </para>
            </remarks>
            <typeparam name="TResult">The type of the result value assocatied with this <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>
            with the specified options.
            </summary>
            <remarks>
            The <see cref="T:System.Threading.Tasks.Task{TResult}"/> created
            by this instance and accessible through its <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> property
            will be instantiated using the specified <paramref name="creationOptions"/>.
            </remarks>
            <param name="creationOptions">The options to use when creating the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> represent options invalid for use
            with a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Object)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>
            with the specified state.
            </summary>
            <param name="state">The state to use as the underlying 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>'s AsyncState.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Object,System.Threading.Tasks.TaskCreationOptions)">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/> with
            the specified state and options.
            </summary>
            <param name="creationOptions">The options to use when creating the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <param name="state">The state to use as the underlying 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/>'s AsyncState.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The <paramref name="creationOptions"/> represent options invalid for use
            with a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetException(System.Exception)">
            <summary>
            Attempts to transition the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
            state.
            </summary>
            <param name="exception">The exception to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>True if the operation was successful; otherwise, false.</returns>
            <remarks>This operation will return false if the 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetException(System.Collections.Generic.IEnumerable{System.Exception})">
            <summary>
            Attempts to transition the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
            state.
            </summary>
            <param name="exceptions">The collection of exceptions to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>True if the operation was successful; otherwise, false.</returns>
            <remarks>This operation will return false if the 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">There are one or more null elements in <paramref name="exceptions"/>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="exceptions"/> collection is empty.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Exception)">
            <summary>
            Transitions the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
            state.
            </summary>
            <param name="exception">The exception to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null.</exception>
            <exception cref="T:System.InvalidOperationException">
            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Collections.Generic.IEnumerable{System.Exception})">
            <summary>
            Transitions the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
            state.
            </summary>
            <param name="exceptions">The collection of exceptions to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptions"/> argument is null.</exception>
            <exception cref="T:System.ArgumentException">There are one or more null elements in <paramref name="exceptions"/>.</exception>
            <exception cref="T:System.InvalidOperationException">
            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetResult(`0)">
            <summary>
            Attempts to transition the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>
            state.
            </summary>
            <param name="result">The result value to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <returns>True if the operation was successful; otherwise, false.</returns>
            <remarks>This operation will return false if the 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetResult(`0)">
            <summary>
            Transitions the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>
            state.
            </summary>
            <param name="result">The result value to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
            <exception cref="T:System.InvalidOperationException">
            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetCanceled">
            <summary>
            Transitions the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>
            state.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetCanceled">
            <summary>
            Attempts to transition the underlying
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>
            state.
            </summary>
            <returns>True if the operation was successful; otherwise, false.</returns>
            <remarks>This operation will return false if the 
            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
            of the three final states:
            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
        </member>
        <member name="P:System.Threading.Tasks.TaskCompletionSource`1.Task">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.Task{TResult}"/> created
            by this <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
            </summary>
            <remarks>
            This property enables a consumer access to the <see cref="T:System.Threading.Tasks.Task{TResult}"/> that is controlled by this instance.
            The <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetResult(`0)"/>, <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Exception)"/>,
            <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Collections.Generic.IEnumerable{System.Exception})"/>, and <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetCanceled"/>
            methods (and their "Try" variants) on this instance all result in the relevant state
            transitions on this underlying Task.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskScheduler">
            <summary>
            Represents an abstract scheduler for tasks.
            </summary>
            <remarks>
            <para>
            <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> acts as the extension point for all 
            pluggable scheduling logic.  This includes mechanisms such as how to schedule a task for execution, and
            how scheduled tasks should be exposed to debuggers.
            </para>
            <para>
            All members of the abstract <see cref="T:System.Threading.Tasks.TaskScheduler"/> type are thread-safe
            and may be used from multiple threads concurrently.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)">
            <summary>
            Queues a <see cref="T:System.Threading.Tasks.Task">Task</see> to the scheduler.
            </summary>
            <remarks>
            <para>
            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>  
            implements this method to accept tasks being scheduled on the scheduler.
            A typical implementation would store the task in an internal data structure, which would
            be serviced by threads that would execute those tasks at some time in the future.
            </para>
            <para>
            This method is only meant to be called by the .NET Framework and
            should not be called directly by the derived class. This is necessary 
            for maintaining the consistency of the system.
            </para>
            </remarks>
            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be queued.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is null.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
            <summary>
            Determines whether the provided <see cref="T:System.Threading.Tasks.Task">Task</see>
            can be executed synchronously in this call, and if it can, executes it.
            </summary>
            <remarks>
            <para>
            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> implements this function to
            support inline execution of a task on a thread that initiates a wait on that task object. Inline
            execution is optional, and the request may be rejected by returning false. However, better
            scalability typically results the more tasks that can be inlined, and in fact a scheduler that
            inlines too little may be prone to deadlocks. A proper implementation should ensure that a
            request executing under the policies guaranteed by the scheduler can successfully inline. For
            example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that
            thread should succeed.
            </para>
            <para>
            If a scheduler decides to perform the inline execution, it should do so by calling to the base
            TaskScheduler's
            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)">TryExecuteTask</see> method with the provided task object, propagating
            the return value. It may also be appropriate for the scheduler to remove an inlined task from its
            internal data structures if it decides to honor the inlining request. Note, however, that under
            some circumstances a scheduler may be asked to inline a task that was not previously provided to
            it with the <see cref="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)"/> method.
            </para>
            <para>
            The derived scheduler is responsible for making sure that the calling thread is suitable for
            executing the given task as far as its own scheduling and execution policies are concerned.
            </para>
            </remarks>
            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be
            executed.</param>
            <param name="taskWasPreviouslyQueued">A Boolean denoting whether or not task has previously been
            queued. If this parameter is True, then the task may have been previously queued (scheduled); if
            False, then the task is known not to have been queued, and this call is being made in order to
            execute the task inline without queueing it.</param>
            <returns>A Boolean value indicating whether the task was executed inline.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is
            null.</exception>
            <exception cref="T:System.InvalidOperationException">The <paramref name="task"/> was already
            executed.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasks">
            <summary>
            Generates an enumerable of <see cref="T:System.Threading.Tasks.Task">Task</see> instances
            currently queued to the scheduler waiting to be executed.
            </summary>
            <remarks>
            <para>
            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler"/> implements this method in order to support
            integration with debuggers. This method will only be invoked by the .NET Framework when the
            debugger requests access to the data. The enumerable returned will be traversed by debugging
            utilities to access the tasks currently queued to this scheduler, enabling the debugger to
            provide a representation of this information in the user interface.
            </para>
            <para>
            It is important to note that, when this method is called, all other threads in the process will
            be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to
            blocking. If synchronization is necessary, the method should prefer to throw a <see cref="T:System.NotSupportedException"/>
            than to block, which could cause a debugger to experience delays. Additionally, this method and
            the enumerable returned must not modify any globally visible state.
            </para>
            <para>
            The returned enumerable should never be null. If there are currently no queued tasks, an empty
            enumerable should be returned instead.
            </para>
            <para>
            For developers implementing a custom debugger, this method shouldn't be called directly, but
            rather this functionality should be accessed through the internal wrapper method
            GetScheduledTasksForDebugger:
            <c>internal Task[] GetScheduledTasksForDebugger()</c>. This method returns an array of tasks,
            rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use
            another internal method: <c>internal static TaskScheduler[] GetTaskSchedulersForDebugger()</c>.
            This static method returns an array of all active TaskScheduler instances.
            GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve
            the list of scheduled tasks for each.
            </para>
            </remarks>
            <returns>An enumerable that allows traversal of tasks currently queued to this scheduler.
            </returns>
            <exception cref="T:System.NotSupportedException">
            This scheduler is unable to generate a list of queued tasks at this time.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.GetThreadStatics">
            <summary>
            Retrieves some thread static state that can be cached and passed to multiple
            TryRunInline calls, avoiding superflous TLS fetches.
            </summary>
            <returns>A bag of TLS state (or null if none exists).</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task,System.Boolean,System.Object)">
            <summary>
            Attempts to execute the target task synchronously.
            </summary>
            <param name="task">The task to run.</param>
            <param name="taskWasPreviouslyQueued">True if the task may have been previously queued,
            false if the task was absolutely not previously queued.</param>
            <param name="threadStatics">The state retrieved from GetThreadStatics</param>
            <returns>True if it ran, false otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.TryDequeue(System.Threading.Tasks.Task)">
            <summary>
            Attempts to dequeue a <see cref="T:System.Threading.Tasks.Task">Task</see> that was previously queued to
            this scheduler.
            </summary>
            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be dequeued.</param>
            <returns>A Boolean denoting whether the <paramref name="task"/> argument was successfully dequeued.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is null.</exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.NotifyWorkItemProgress">
            <summary>
            Notifies the scheduler that a work item has made progress.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.#ctor">
            <summary>
            Initializes the <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.Finalize">
            <summary>
            Frees all resources associated with this scheduler.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext">
            <summary>
            Creates a <see cref="T:System.Threading.Tasks.TaskScheduler"/>
            associated with the current <see cref="T:System.Threading.SynchronizationContext"/>.
            </summary>
            <remarks>
            All <see cref="T:System.Threading.Tasks.Task">Task</see> instances queued to 
            the returned scheduler will be executed through a call to the
            <see cref="M:System.Threading.SynchronizationContext.Post(System.Threading.SendOrPostCallback,System.Object)">Post</see> method
            on that context.
            </remarks>
            <returns>
            A <see cref="T:System.Threading.Tasks.TaskScheduler"/> associated with 
            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see>, as
            determined by <see cref="P:System.Threading.SynchronizationContext.Current">SynchronizationContext.Current</see>.
            </returns>
            <exception cref="T:System.InvalidOperationException">
            The current SynchronizationContext may not be used as a TaskScheduler.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)">
            <summary>
            Attempts to execute the provided <see cref="T:System.Threading.Tasks.Task">Task</see>
            on this scheduler.
            </summary>
            <remarks>
            <para>
            Scheduler implementations are provided with <see cref="T:System.Threading.Tasks.Task">Task</see>
            instances to be executed through either the <see cref="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)"/> method or the
            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)"/> method. When the scheduler deems it appropriate to run the
            provided task, <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)"/> should be used to do so. TryExecuteTask handles all
            aspects of executing a task, including action invocation, exception handling, state management,
            and lifecycle control.
            </para>
            <para>
            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)"/> must only be used for tasks provided to this scheduler by the .NET
            Framework infrastructure. It should not be used to execute arbitrary tasks obtained through
            custom mechanisms.
            </para>
            </remarks>
            <param name="task">
            A <see cref="T:System.Threading.Tasks.Task">Task</see> object to be executed.</param>
            <exception cref="T:System.InvalidOperationException">
            The <paramref name="task"/> is not associated with this scheduler.
            </exception>
            <returns>A Boolean that is true if <paramref name="task"/> was successfully executed, false if it
            was not. A common reason for execution failure is that the task had previously been executed or
            is in the process of being executed by another thread.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasksForDebugger">
            <summary>
            Provides an array of all queued <see cref="T:System.Threading.Tasks.Task">Task</see> instances
            for the debugger.
            </summary>
            <remarks>
            The returned array is populated through a call to <see cref="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasks"/>.
            Note that this function is only meant to be invoked by a debugger remotely. 
            It should not be called by any other codepaths.
            </remarks>
            <returns>An array of <see cref="T:System.Threading.Tasks.Task">Task</see> instances.</returns> 
            <exception cref="T:System.NotSupportedException">
            This scheduler is unable to generate a list of queued tasks at this time.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.GetTaskSchedulersForDebugger">
            <summary>
            Provides an array of all active <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> 
            instances for the debugger.
            </summary>
            <remarks>
            This function is only meant to be invoked by a debugger remotely. 
            It should not be called by any other codepaths.
            </remarks>
            <returns>An array of <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> instances.</returns> 
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.RegisterTaskScheduler(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Registers a new TaskScheduler instance in the global collection of schedulers.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskScheduler.UnregisterTaskScheduler(System.Threading.Tasks.TaskScheduler)">
            <summary>
            Removes a TaskScheduler instance from the global collection of schedulers.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.TaskScheduler.MaximumConcurrencyLevel">
            <summary>
            Indicates the maximum concurrency level this 
            <see cref="T:System.Threading.Tasks.TaskScheduler"/>  is able to support.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.TaskScheduler.RequiresAtomicStartTransition">
            <summary>
            Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry
            using a CAS to transition from queued state to executing.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.TaskScheduler.Default">
            <summary>
            Gets the default <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> instance.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.TaskScheduler.Current">
            <summary>
            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
            associated with the currently executing task.
            </summary>
            <remarks>
            When not called from within a task, <see cref="P:System.Threading.Tasks.TaskScheduler.Current"/> will return the <see cref="P:System.Threading.Tasks.TaskScheduler.Default"/> scheduler.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.TaskScheduler.Id">
            <summary>
            Gets the unique ID for this <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
            </summary>
        </member>
        <member name="E:System.Threading.Tasks.TaskScheduler.UnobservedTaskException">
            <summary>
            Occurs when a faulted <see cref="T:System.Threading.Tasks.Task"/>'s unobserved exception is about to trigger exception escalation
            policy, which, by default, would terminate the process.
            </summary>
            <remarks>
            This AppDomain-wide event provides a mechanism to prevent exception
            escalation policy (which, by default, terminates the process) from triggering. 
            Each handler is passed a <see cref="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs"/>
            instance, which may be used to examine the exception and to mark it as observed.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.TaskScheduler.SystemThreadingTasks_TaskSchedulerDebugView">
            <summary>
            Nested class that provides debugger view for TaskScheduler
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.SynchronizationContextTaskScheduler">
            <summary>
            A TaskScheduler implementation that executes all tasks queued to it through a call to 
            <see cref="M:System.Threading.SynchronizationContext.Post(System.Threading.SendOrPostCallback,System.Object)"/> on the <see cref="T:System.Threading.SynchronizationContext"/> 
            that its associated with. The default constructor for this class binds to the current <see cref="T:System.Threading.SynchronizationContext"/> 
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.#ctor">
            <summary>
            Constructs a SynchronizationContextTaskScheduler associated with <see cref="T:System.Threading.SynchronizationContext.Current"/> 
            </summary>
            <exception cref="T:System.InvalidOperationException">This constructor expects <see cref="T:System.Threading.SynchronizationContext.Current"/> to be set.</exception>
        </member>
        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.QueueTask(System.Threading.Tasks.Task)">
            <summary>
            Implemetation of <see cref="T:System.Threading.Tasks.TaskScheduler.QueueTask"/> for this scheduler class.
            
            Simply posts the tasks to be executed on the associated <see cref="T:System.Threading.SynchronizationContext"/>.
            </summary>
            <param name="task"></param>
        </member>
        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
            <summary>
            Implementation of <see cref="T:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline"/>  for this scheduler class.
            
            The task will be executed inline only if the call happens within 
            the associated <see cref="T:System.Threading.SynchronizationContext"/>.
            </summary>
            <param name="task"></param>
            <param name="taskWasPreviouslyQueued"></param>
        </member>
        <member name="P:System.Threading.Tasks.SynchronizationContextTaskScheduler.MaximumConcurrencyLevel">
            <summary>
            Implementes the <see cref="T:System.Threading.Tasks.TaskScheduler.MaximumConcurrencyLevel"/> property for
            this scheduler class.
            
            By default it returns 1, because a <see cref="T:System.Threading.SynchronizationContext"/> based
            scheduler only supports execution on a single thread.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs">
            <summary>
            Provides data for the event that is raised when a faulted <see cref="T:System.Threading.Tasks.Task"/>'s
            exception goes unobserved.
            </summary>
            <remarks>
            The Exception property is used to examine the exception without marking it
            as observed, whereas the <see cref="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.SetObserved"/> method is used to mark the exception
            as observed.  Marking the exception as observed prevents it from triggering exception escalation policy
            which, by default, terminates the process.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.#ctor(System.AggregateException)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs"/> class
            with the unobserved exception.
            </summary>
            <param name="exception">The Exception that has gone unobserved.</param>
        </member>
        <member name="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.SetObserved">
            <summary>
            Marks the <see cref="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Exception"/> as "observed," thus preventing it
            from triggering exception escalation policy which, by default, terminates the process.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Observed">
            <summary>
            Gets whether this exception has been marked as "observed."
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Exception">
            <summary>
            The Exception that went unobserved.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.ThreadPoolTaskScheduler">
            <summary>
            An implementation of TaskScheduler that uses the ThreadPool scheduler
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.#ctor">
            <summary>
            Constructs a new ThreadPool task scheduler object
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.QueueTask(System.Threading.Tasks.Task)">
            <summary>
            Schedules a task to the ThreadPool.
            </summary>
            <param name="task">The task to schedule.</param>
        </member>
        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
            <summary>
            This internal function will do this:
              (1) If the task had previously been queued, attempt to pop it and return false if that fails.
              (2) Propagate the return value from Task.ExecuteEntry() back to the caller.
            
            IMPORTANT NOTE: TryExecuteTaskInline will NOT throw task exceptions itself. Any wait code path using this function needs
            to account for exceptions that need to be propagated, and throw themselves accordingly.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.NotifyWorkItemProgress">
            <summary>
            Notifies the scheduler that work is progressing (no-op).
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.ThreadPoolTaskScheduler.RequiresAtomicStartTransition">
            <summary>
            This is the only scheduler that returns false for this property, indicating that the task entry codepath is unsafe (CAS free)
            since we know that the underlying scheduler already takes care of atomic transitions from queued to non-queued.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.TaskSchedulerException">
            <summary>
            Represents an exception used to communicate an invalid operation by a
            <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/> class.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
            class with a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
            class using the default error message and a reference to the inner exception that is the cause of
            this exception.
            </summary>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
            class with a specified error message and a reference to the inner exception that is the cause of
            this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
            class with serialized data.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
            the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
            contains contextual information about the source or destination. </param>
        </member>
        <member name="T:System.Threading.BarrierPostPhaseException">
            <summary>
            The exception that is thrown when the post-phase action of a <see cref="T:System.Threading.Barrier"/> fails.
            </summary>
        </member>
        <member name="M:System.Threading.BarrierPostPhaseException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class.
            </summary>
        </member>
        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with the specified inner exception.
            </summary>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with a specified error message.
            </summary>
            <param name="message">A string that describes the exception.</param>
        </member>
        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with a specified error message and inner exception.
            </summary>
            <param name="message">A string that describes the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with serialized data.
            </summary>
            <param name="info">The object that holds the serialized object data.</param>
            <param name="context">An object that describes the source or destination of the serialized data.</param>
        </member>
        <member name="T:System.Threading.Barrier">
            <summary>
            Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases.
            </summary>
            <remarks>
            <para>
            A group of tasks cooperate by moving through a series of phases, where each in the group signals it
            has arrived at the <see cref="T:System.Threading.Barrier"/> in a given phase and implicitly waits for all others to
            arrive. The same <see cref="T:System.Threading.Barrier"/> can be used for multiple phases.
            </para>
            <para>
            All public and protected members of <see cref="T:System.Threading.Barrier"/> are thread-safe and may be used
            concurrently from multiple threads, with the exception of Dispose, which
            must only be used when all other operations on the <see cref="T:System.Threading.Barrier"/> have
            completed.
            </para>
            </remarks>
        </member>
        <member name="M:System.Threading.Barrier.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Barrier"/> class.
            </summary>
            <param name="participantCount">The number of participating threads.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="participantCount"/> is less than 0
            or greater than <see cref="T:System.Int32.MaxValue"/>.</exception>
        </member>
        <member name="M:System.Threading.Barrier.#ctor(System.Int32,System.Action{System.Threading.Barrier})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Threading.Barrier"/> class.
            </summary>
            <param name="participantCount">The number of participating threads.</param>
            <param name="postPhaseAction">The <see cref="T:System.Action`1"/> to be executed after each
            phase.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="participantCount"/> is less than 0
            or greater than <see cref="T:System.Int32.MaxValue"/>.</exception>
            <remarks>
            The <paramref name="postPhaseAction"/> delegate will be executed after
            all participants have arrived at the barrier in one phase.  The participants
            will not be released to the next phase until the postPhaseAction delegate
            has completed execution.
            </remarks>
        </member>
        <member name="M:System.Threading.Barrier.GetCurrentTotal(System.Int32,System.Int32@,System.Int32@,System.Boolean@)">
            <summary>
            Extract the three variables current, total and sense from a given big variable
            </summary>
            <param name="currentTotal">The integer variable that contains the other three variables</param>
            <param name="current">The current cparticipant count</param>
            <param name="total">The total participants count</param>
            <param name="sense">The sense flag</param>
        </member>
        <member name="M:System.Threading.Barrier.SetCurrentTotal(System.Int32,System.Int32,System.Int32,System.Boolean)">
            <summary>
            Write the three variables current. total and the sense to the m_currentTotal
            </summary>
            <param name="currentTotal">The old current total to compare</param>
            <param name="current">The current cparticipant count</param>
            <param name="total">The total participants count</param>
            <param name="sense">The sense flag</param>
            <returns>True if the CAS succeeded, false otherwise</returns>
        </member>
        <member name="M:System.Threading.Barrier.AddParticipant">
            <summary>
            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be an additional participant.
            </summary>
            <returns>The phase number of the barrier in which the new participants will first
            participate.</returns>
            <exception cref="T:System.InvalidOperationException">
            Adding a participant would cause the barrier's participant count to 
            exceed <see cref="T:System.Int16.MaxValue"/>.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.AddParticipants(System.Int32)">
            <summary>
            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be additional participants.
            </summary>
            <param name="participantCount">The number of additional participants to add to the
            barrier.</param>
            <returns>The phase number of the barrier in which the new participants will first
            participate.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="participantCount"/> is less than
            0.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Adding <paramref name="participantCount"/> participants would cause the
            barrier's participant count to exceed <see cref="T:System.Int16.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.RemoveParticipant">
            <summary>
            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be one less participant.
            </summary>
            <exception cref="T:System.InvalidOperationException">The barrier already has 0
            participants.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.RemoveParticipants(System.Int32)">
            <summary>
            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be fewer participants.
            </summary>
            <param name="participantCount">The number of additional participants to remove from the barrier.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="participantCount"/> is less than
            0.</exception>
            <exception cref="T:System.InvalidOperationException">The barrier already has 0 participants.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait">
            <summary>
            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
            participants to reach the barrier as well.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait(System.Threading.CancellationToken)">
            <summary>
            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
            participants to reach the barrier, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
            canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait(System.TimeSpan)">
            <summary>
            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
            participants to reach the barrier as well, using a
            <see cref="T:System.TimeSpan"/> to measure the time interval.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
            wait indefinitely.</param>
            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/>is a negative number
            other than -1 milliseconds, which represents an infinite time-out, or it is greater than
            <see cref="T:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
            participants to reach the barrier as well, using a
            <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
            wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/>is a negative number
            other than -1 milliseconds, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
            canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait(System.Int32)">
            <summary>
            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
            participants to reach the barrier as well, using a
            32-bit signed integer to measure the time interval.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.SignalAndWait(System.Int32,System.Threading.CancellationToken)">
            <summary>
            Signals that a participant has reached the barrier and waits for all other participants to reach
            the barrier as well, using a
            32-bit signed integer to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
            observe.</param>
            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
            or the barrier is being used by more threads than are registered as participants.
            </exception>
            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
            canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The current instance has already been
            disposed.</exception>
        </member>
        <member name="M:System.Threading.Barrier.FinishPhase(System.Boolean)">
            <summary>
            Finish the phase by invoking the post phase action, and setting the event, this must be called by the 
            last arrival thread
            </summary>
            <param name="observedSense">The current phase sense</param>
        </member>
        <member name="M:System.Threading.Barrier.SetResetEvents(System.Boolean)">
            <summary>
            Sets the current phase event and reset the next phase event
            </summary>
            <param name="observedSense">The current phase sense</param>
        </member>
        <member name="M:System.Threading.Barrier.Dispose">
            <summary>
            Releases all resources used by the current instance of <see cref="T:System.Threading.Barrier"/>.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            The method was invoked from within a post-phase action.
            </exception>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.Barrier"/>, Dispose is not thread-safe and may not be
            used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.Barrier.Dispose(System.Boolean)">
            <summary>
            When overridden in a derived class, releases the unmanaged resources used by the
            <see cref="T:System.Threading.Barrier"/>, and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release
            only unmanaged resources.</param>
            <remarks>
            Unlike most of the members of <see cref="T:System.Threading.Barrier"/>, Dispose is not thread-safe and may not be
            used concurrently with other members of this instance.
            </remarks>
        </member>
        <member name="M:System.Threading.Barrier.ThrowIfDisposed">
            <summary>
            Throw ObjectDisposedException if the barrier is disposed
            </summary>
        </member>
        <member name="P:System.Threading.Barrier.ParticipantsRemaining">
            <summary>
            Gets the number of participants in the barrier that haven’t yet signaled
            in the current phase.
            </summary>
            <remarks>
            This could be 0 during a post-phase action delegate execution or if the
            ParticipantCount is 0.
            </remarks>
        </member>
        <member name="P:System.Threading.Barrier.ParticipantCount">
            <summary>
            Gets the total number of participants in the barrier.
            </summary>
        </member>
        <member name="P:System.Threading.Barrier.CurrentPhaseNumber">
            <summary>
            Gets the number of the barrier's current phase.
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.BlockingCollection`1">
            <summary> 
            Provides blocking and bounding capabilities for thread-safe collections that 
            implement <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. 
            </summary>
            <remarks>
            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> represents a collection
            that allows for thread-safe adding and removing of data. 
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is used as a wrapper
            for an <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> instance, allowing
            removal attempts from the collection to block until data is available to be removed.  Similarly,
            a <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> can be created to enforce
            an upper-bound on the number of data elements allowed in the 
            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>; addition attempts to the
            collection may then block until space is available to store the added items.  In this manner,
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is similar to a traditional
            blocking queue data structure, except that the underlying data storage mechanism is abstracted
            away as an <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. 
            </remarks>
            <typeparam name="T">Specifies the type of elements in the collection.</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor">
            <summary>Initializes a new instance of the 
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
            class without an upper-bound.
            </summary>
            <remarks>
            The default underlying collection is a <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1">ConcurrentQueue&lt;T&gt;</see>.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Int32)">
            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
            class with the specified upper-bound.
            </summary>
            <param name="boundedCapacity">The bounded size of the collection.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="boundedCapacity"/> is
            not a positive value.</exception>
            <remarks>
            The default underlying collection is a <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1">ConcurrentQueue&lt;T&gt;</see>.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0},System.Int32)">
            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
            class with the specified upper-bound and using the provided 
            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> as its underlying data store.</summary>
            <param name="collection">The collection to use as the underlying data store.</param>
            <param name="boundedCapacity">The bounded size of the collection.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="boundedCapacity"/> is not a positive value.</exception>
            <exception cref="T:System.ArgumentException">The supplied <paramref name="collection"/> contains more values 
            than is permitted by <paramref name="boundedCapacity"/>.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0})">
            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
            class without an upper-bound and using the provided 
            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> as its underlying data store.</summary>
            <param name="collection">The collection to use as the underlying data store.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
            null.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Initialize(System.Collections.Concurrent.IProducerConsumerCollection{`0},System.Int32,System.Int32)">
            <summary>Initializes the BlockingCollection instance.</summary>
            <param name="collection">The collection to use as the underlying data store.</param>
            <param name="boundedCapacity">The bounded size of the collection.</param>
            <param name="collectionCount">The number of items currently in the underlying collection.</param>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0)">
            <summary>
            Adds the item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item to be added to the collection. The value can be a null reference.</param>
            <exception cref="T:System.InvalidOperationException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
            <remarks>
            If a bounded capacity was specified when this instance of 
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> was initialized, 
            a call to Add may block until space is available to store the provided item.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0,System.Threading.CancellationToken)">
            <summary>
            Adds the item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="item">The item to be added to the collection. The value can be a null reference.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
            <remarks>
            If a bounded capacity was specified when this instance of 
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> was initialized, 
            a call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0,System.Threading.CancellationToken)"/> may block until space is available to store the provided item.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0)">
            <summary>
            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item to be added to the collection.</param>
            <returns>true if the <paramref name="item"/> could be added; otherwise, false.</returns>
            <exception cref="T:System.InvalidOperationException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.TimeSpan)">
            <summary>
            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item to be added to the collection.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>true if the <paramref name="item"/> could be added to the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.Int32)">
            <summary>
            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item to be added to the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <returns>true if the <paramref name="item"/> could be added to the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="item">The item to be added to the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>true if the <paramref name="item"/> could be added to the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddWithNoTimeValidation(`0,System.Int32,System.Threading.CancellationToken)">
            <summary>Adds an item into the underlying data store using its IProducerConsumerCollection&lt;T&gt;.Add 
            method. If a bounded capacity was specified and the collection was full, 
            this method will wait for, at most, the timeout period trying to add the item. 
            If the timeout period was exhaused before successfully adding the item this method will 
            return false.</summary>
            <param name="item">The item to be added to the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait for the collection to accept the item,
            or Timeout.Infinite to wait indefinitely.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>False if the collection remained full till the timeout period was exhausted.True otherwise.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.InvalidOperationException">the collection has already been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Take">
            <summary>Takes an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
            <returns>The item removed from the collection.</returns>
            <exception cref="T:System.OperationCanceledException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is empty and has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <remarks>A call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Take"/> may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Take(System.Threading.CancellationToken)">
            <summary>Takes an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
            <returns>The item removed from the collection.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is
            canceled or the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is empty and has been marked
            as complete with regards to additions.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <remarks>A call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Take(System.Threading.CancellationToken)"/> may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@)">
            <summary>
            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item removed from the collection.</param>
            <returns>true if an item could be removed; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.TimeSpan)">
            <summary>
            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item removed from the collection.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>true if an item could be removed from the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.Int32)">
            <summary>
            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            </summary>
            <param name="item">The item removed from the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <returns>true if an item could be removed from the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="item">The item removed from the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>true if an item could be removed from the collection within 
            the alloted time; otherwise, false.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeWithNoTimeValidation(`0@,System.Int32,System.Threading.CancellationToken,System.Threading.CancellationTokenSource)">
            <summary>Takes an item from the underlying data store using its IProducerConsumerCollection&lt;T&gt;.Take 
            method. If the collection was empty, this method will wait for, at most, the timeout period (if AddingIsCompleted is false)
            trying to remove an item. If the timeout period was exhaused before successfully removing an item 
            this method will return false.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="item">The item removed from the collection.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait for the collection to have an item available 
            for removal, or Timeout.Infinite to wait indefinitely.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <param name="combinedTokenSource">A combined cancellation token if created, it is only created by GetConsumingEnumerable to avoid creating the linked token 
            multiple times.</param>
            <returns>False if the collection remained empty till the timeout period was exhausted. True otherwise.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.AddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0)">
            <summary>
            Adds the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array to which the item was added.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>
            If a bounded capacity was specified when all of the
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances were initialized, 
            a call to AddToAny may block until space is available in one of the collections
            to store the provided item.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.AddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Threading.CancellationToken)">
            <summary>
            Adds the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled. 
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array to which the item was added.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>
            If a bounded capacity was specified when all of the
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances were initialized, 
            a call to AddToAny may block until space is available in one of the collections
            to store the provided item.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0)">
            <summary>
            Attempts to add the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <returns>The index of the collection in the <paramref name="collections"/> 
            array to which the item was added, or -1 if the item could not be added.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.TimeSpan)">
            <summary>
            Attempts to add the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>The index of the collection in the <paramref name="collections"/> 
            array to which the item was added, or -1 if the item could not be added.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Int32)">
            <summary>
            Attempts to add the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>        /// <returns>The index of the collection in the <paramref name="collections"/> 
            array to which the item was added, or -1 if the item could not be added.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Attempts to add the specified item to any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item to be added to one of the collections.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>        /// <returns>The index of the collection in the <paramref name="collections"/> 
            array to which the item was added, or -1 if the item could not be added.</returns>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element, or at least one of collections has been
            marked as complete for adding.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddTakeAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32,System.Collections.Concurrent.BlockingCollection{`0}.OperationMode,System.Threading.CancellationToken)">
            <summary>Adds/Takes an item to/from anyone of the specified collections.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled. 
            </summary>
            <param name="collections">The collections into which the item can be added.</param>
            <param name="item">The item to be added or the item removed and returned to the caller.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait for a collection to accept the 
            operation, or -1 to wait indefinitely.</param>
            <param name="operationMode">Indicates whether this method is called to Add or Take.</param>
            <param name="externalCancellationToken">A cancellation token to observe.</param>
            <returns>The index into collections for the collection which accepted the 
            adding/removal of the item; -1 if the item could not be added/removed.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ArgumentNullException">If the collections argument is null.</exception>
            <exception cref="T:System.ArgumentException">If the collections argument is a 0-length array or contains a 
            null element. Also, if atleast one of the collections has been marked complete for adds.</exception>
            <exception cref="T:System.ObjectDisposedException">If atleast one of the collections has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetHandles(System.Collections.Concurrent.BlockingCollection{`0}[],System.Collections.Concurrent.BlockingCollection{`0}.OperationMode,System.Threading.CancellationToken,System.Boolean,System.Threading.CancellationToken[]@)">
            <summary>
            Local static method, used by TryAddTakeAny to get the wait handles for the collection, with exclude option to exclude the Compeleted collections
            </summary>
            <param name="collections">The blocking collections</param>
            <param name="operationMode">Add or Take operation</param>
            <param name="externalCancellationToken">The original CancellationToken</param>
            <param name="excludeCompleted">True to exclude the compeleted collections</param>
            <param name="cancellationTokens">Complete list of cancellationTokens to observe</param>
            <returns>The collections wait handles</returns>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.WaitHandle_WaitAny(System.Collections.Generic.List{System.Threading.WaitHandle},System.Int32,System.Threading.CancellationToken,System.Threading.CancellationToken)">
            <summary>
            Helper to perform WaitHandle.WaitAny(.., CancellationToken)
            this should eventually appear on the WaitHandle class.
            </summary>
            <param name="handles"></param>
            <param name="millisecondsTimeout"></param>
            <param name="combinedToken"></param>
            <param name="externalToken"></param>
            <returns></returns>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.UpdateTimeOut(System.Int64,System.Int32)">
            <summary>
            Helper function to measure and update the wait time
            </summary>
            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started</param>
            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds</param>
            <returns>The new wait time in milliseconds, -1 if the time expired</returns>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@)">
            <summary>
            Takes an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Threading.CancellationToken)">
            <summary>
            Takes an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of 
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@)">
            <summary>
            Attempts to remove an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.TimeSpan)">
            <summary>
            Attempts to remove an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
            </param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
            <see cref="F:System.Int32.MaxValue"/>.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32)">
            <summary>
            Attempts to remove an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Attempts to remove an item from any one of the specified
            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
            canceled. 
            </summary>
            <param name="collections">The array of collections.</param>
            <param name="item">The item removed from one of the collections.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>The index of the collection in the <paramref name="collections"/> array from which 
            the item was removed, or -1 if an item could not be removed.</returns>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
            a 0-length array or contains a null element.</exception>
            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
            negative number other than -1, which represents an infinite time-out.</exception>
            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
            62 for STA and 63 for MTA.</exception>
            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CompleteAdding">
            <summary>
            Marks the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances
            as not accepting any more additions.  
            </summary>
            <remarks>
            After a collection has been marked as complete for adding, adding to the collection is not permitted 
            and attempts to remove from the collection will not wait when the collection is empty.
            </remarks>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CancelWaitingConsumers">
            <summary>Cancels the semaphores.</summary>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Dispose">
            <summary>
            Releases resources used by the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Dispose(System.Boolean)">
            <summary>
            Releases resources used by the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.
            </summary>
            <param name="disposing">Whether being disposed explicitly (true) or due to a finalizer (false).</param>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ToArray">
            <summary>Copies the items from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance into a new array.</summary>
            <returns>An array containing copies of the elements of the collection.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <remarks>
            The copied elements are not removed from the collection.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CopyTo(`0[],System.Int32)">
            <summary>Copies all of the items in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance 
            to a compatible one-dimensional array, starting at the specified index of the target array.
            </summary>
            <param name="array">The one-dimensional array that is the destination of the elements copied from 
            the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance. The array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="array"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> argument is less than zero.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="index"/> argument is equal to or greater 
            than the length of the <paramref name="array"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>Copies all of the items in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance 
            to a compatible one-dimensional array, starting at the specified index of the target array.
            </summary>
            <param name="array">The one-dimensional array that is the destination of the elements copied from 
            the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance. The array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="array"/> argument is
            null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> argument is less than zero.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="index"/> argument is equal to or greater 
            than the length of the <paramref name="array"/>, the array is multidimensional, or the type parameter for the collection 
            cannot be cast automatically to the type of the destination array.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetConsumingEnumerable">
            <summary>Provides a consuming <see cref="T:System.Collections.Generics.IEnumerable{T}"/> for items in the collection.</summary>
            <returns>An <see cref="T:System.Collections.Generics.IEnumerable{T}"/> that removes and returns items from the collection.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetConsumingEnumerable(System.Threading.CancellationToken)">
            <summary>Provides a consuming <see cref="T:System.Collections.Generics.IEnumerable{T}"/> for items in the collection.
            Calling MoveNext on the returned enumerable will block if there is no data available, or will
            throw an <see cref="T:System.OperationCanceledException"/> if the <see cref="T:System.Threading.CancellationToken"/> is canceled.
            </summary>
            <param name="cancellationToken">A cancellation token to observe.</param>
            <returns>An <see cref="T:System.Collections.Generics.IEnumerable{T}"/> that removes and returns items from the collection.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
            <summary>Provides an <see cref="T:System.Collections.Generics.IEnumerator{T}"/> for items in the collection.</summary>
            <returns>An <see cref="T:System.Collections.Generics.IEnumerator{T}"/> for the items in the collection.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Provides an <see cref="T:System.Collections.IEnumerator"/> for items in the collection.</summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> for the items in the collection.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateCollectionsArray(System.Collections.Concurrent.BlockingCollection{`0}[],System.Collections.Concurrent.BlockingCollection{`0}.OperationMode)">
            <summary>Centralizes the logic for validating the BlockingCollections array passed to TryAddToAny()
            and TryTakeFromAny().</summary>
            <param name="collections">The collections to/from which an item should be added/removed.</param>
            <param name="operationMode">Indicates whether this method is called to Add or Take.</param>
            <returns>A copy of the collections array that acts as a defense to prevent an “outsider” from changing 
            elements of the array after we have done the validation on them.</returns>
            <exception cref="T:System.ArgumentNullException">If the collections argument is null.</exception>
            <exception cref="T:System.ArgumentException">If the collections argument is a 0-length array or contains a 
            null element. Also, if atleast one of the collections has been marked complete for adds.</exception>
            <exception cref="T:System.ObjectDisposedException">If atleast one of the collections has been disposed.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateTimeout(System.TimeSpan)">
            <summary>Centeralizes the logic of validating the timeout input argument.</summary>
            <param name="timeout">The TimeSpan to wait for to successfully complete an operation on the collection.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If the number of millseconds represented by the timeout 
            TimeSpan is less than 0 or is larger than Int32.MaxValue and not Timeout.Infinite</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateMillisecondsTimeout(System.Int32)">
            <summary>Centralizes the logic of validating the millisecondsTimeout input argument.</summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait for to successfully complete an 
            operation on the collection.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If the number of millseconds is less than 0 and not 
            equal to Timeout.Infinite.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CheckDisposed">
            <summary>Throws a System.ObjectDisposedException if the collection was disposed</summary>
            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.BoundedCapacity">
            <summary>Gets the bounded capacity of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</summary>
            <value>The bounded capacity of this collection, or int.MaxValue if no bound was supplied.</value>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.IsAddingCompleted">
            <summary>Gets whether this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked as complete for adding.</summary>
            <value>Whether this collection has been marked as complete for adding.</value>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.IsCompleted">
            <summary>Gets whether this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked as complete for adding and is empty.</summary>
            <value>Whether this collection has been marked as complete for adding and is empty.</value>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.Count">
            <summary>Gets the number of items contained in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
            <value>The number of items contained in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</value>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#IsSynchronized">
            <summary>Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is synchronized.</summary>
            <exception cref="T:System.ObjectDisposedException">The <see
            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
        </member>
        <member name="P:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
        </member>
        <member name="T:System.Collections.Concurrent.BlockingCollection`1.OperationMode">
            <summary>An enumerated data type used internal to the class to specify to a generic method
            the current mode of operation.</summary>
        </member>
        <member name="T:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1">
            <summary>A debugger view of the blocking collection that makes it simple to browse the
            collection's contents at a point in time.</summary>
            <typeparam name="T">The type of element that the BlockingCollection will hold.</typeparam>
        </member>
        <member name="M:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1.#ctor(System.Collections.Concurrent.BlockingCollection{`0})">
            <summary>Constructs a new debugger view object for the provided blocking collection object.</summary>
            <param name="collection">A blocking collection to browse in the debugger.</param>
        </member>
        <member name="P:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1.Items">
            <summary>Returns a snapshot of the underlying collection's elements.</summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentBag`1">
            <summary>
            Represents an thread-safe, unordered collection of objects. 
            </summary>
            <typeparam name="T">Specifies the type of elements in the bag.</typeparam>
            <remarks>
            <para>
            Bags are useful for storing objects when ordering doesn't matter, and unlike sets, bags support
            duplicates. <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is a thread-safe bag implementation, optimized for
            scenarios where the same thread will be both producing and consuming data stored in the bag.
            </para>
            <para>
            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> accepts null reference (Nothing in Visual Basic) as a valid 
            value for reference types.
            </para>
            <para>
            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> are thread-safe and may be used
            concurrently from multiple threads.
            </para>
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
            class.
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
            class that contains elements copied from the specified collection.
            </summary>
            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
            (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Initialize(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Local helper function to initalize a new bag object
            </summary>
            <param name="collection">An enumeration containing items with which to initialize this bag.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Add(`0)">
            <summary>
            Adds an object to the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <param name="item">The object to be added to the
            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The value can be a null reference
            (Nothing in Visual Basic) for reference types.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.AddInternal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList,`0)">
            <summary>
            </summary>
            <param name="list"></param>
            <param name="item"></param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
            <summary>
            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <param name="item">The object to be added to the 
            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The value can be a null reference
            (Nothing in Visual Basic) for reference types.</param>
            <returns>Always returns true</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryTake(`0@)">
            <summary>
            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <param name="result">When this method returns, <paramref name="result"/> contains the object
            removed from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> or the default value
            of <typeparamref name="T"/> if the operation failed.</param>
            <returns>true if an object was removed successfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryPeek(`0@)">
            <summary>
            Attempts to return an object from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
            without removing it.
            </summary>
            <param name="result">When this method returns, <paramref name="result"/> contains an object from
            the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> or the default value of
            <typeparamref name="T"/> if the operation failed.</param>
            <returns>true if and object was returned successfully; otherwise, false.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryTakeOrPeek(`0@,System.Boolean)">
            <summary>
            Local helper function to Take or Peek an item from the bag
            </summary>
            <param name="result">To receive the item retrieved from the bag</param>
            <param name="take">True means Take operation, false means Peek operation</param>
            <returns>True if succeeded, false otherwise</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetThreadList(System.Boolean)">
            <summary>
            Local helper function to retrieve a thread local list by a thread object
            </summary>
            <param name="forceCreate">Create a new list if the thread does ot exist</param>
            <returns>The local list object</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetUnownedList">
            <summary>
            Try to reuse an unowned list if exist
            unowned lists are the lists that their owner threads are aborted or terminated
            this is workaround to avoid memory leaks.
            </summary>
            <returns>The list object, null if all lists are owned</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Steal(`0@,System.Boolean)">
            <summary>
            Local helper method to steal an item from any other non empty thread
            It enumerate all other threads in two passes first pass acquire the lock with TryEnter if succeeded
            it steals the item, otherwise it enumerate them again in 2nd pass and acquire the lock using Enter
            </summary>
            <param name="result">To receive the item retrieved from the bag</param>
            <param name="take">Whether to remove or peek.</param>
            <returns>True if succeeded, false otherwise.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TrySteal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList,`0@,System.Boolean)">
            <summary>
            local helper function tries to steal an item from given local list
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.CanSteal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList)">
            <summary>
            Local helper function to check the list if it became empty after acquiring the lock
            and wait if there is unsynchronized Add/Take operation in the list to be done
            </summary>
            <param name="list">The list to steal</param>
            <returns>True if can steal, false otherwise</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> elements to an existing
            one-dimensional <see cref="T:System.Array">Array</see>, starting at the specified array
            index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
            destination of the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
            length of the <paramref name="array"/>
            -or- the number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is greater than the available space from
            <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
            <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
            destination of the elements copied from the
            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying
            begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
            Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
            zero.</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="array"/> is multidimensional. -or-
            <paramref name="array"/> does not have zero-based indexing. -or-
            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
            greater than the available space from <paramref name="index"/> to the end of the destination
            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
            destination <paramref name="array"/>.
            </exception>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ToArray">
            <summary>
            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> elements to a new array.
            </summary>
            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
            <remarks>
            The enumeration represents a moment-in-time snapshot of the contents
            of the bag.  It does not reflect any updates to the collection after 
            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.  The enumerator is safe to use
            concurrently with reads from and writes to the bag.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
            <remarks>
            The items enumerated represent a moment-in-time snapshot of the contents
            of the bag.  It does not reflect any update to the collection after 
            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.
            </remarks>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Get the data array to be serialized
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
            <summary>
            Construct the stack from a previously seiralized one
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.FreezeBag(System.Boolean@)">
            <summary>
            Local helper method to freeze all bag operations, it
            1- Acquire the global lock to prevent any other thread to freeze the bag, and also new new thread can be added
            to the dictionary
            2- Then Acquire all local lists locks to prevent steal and synchronized operations
            3- Wait for all un-synchronized operations to be done
            </summary>
            <param name="lockTaken">Retrieve the lock taken result for the global lock, to be passed to Unfreeze method</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.UnfreezeBag(System.Boolean)">
            <summary>
            Local helper method to unfreeze the bag from a frozen state
            </summary>
            <param name="lockTaken">The lock taken result from the Freeze method</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.AcquireAllLocks">
            <summary>
            local helper method to acquire all local lists locks
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ReleaseAllLocks">
            <summary>
            Local helper method to release all local lists locks
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.WaitAllOperations">
            <summary>
            Local helper function to wait all unsynchronized operations
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetCountInternal">
            <summary>
            Local helper function to get the bag count, the caller should call it from Freeze/Unfreeze block
            </summary>
            <returns>The current bag count</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ToList">
            <summary>
            Local helper function to return the bag item in a list, this is mainly used by CopyTo and ToArray
            This is not thread safe, should be called in Freeze/UnFreeze bag block
            </summary>
            <returns>List the contains the bag items</returns>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
            </summary>
            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</value>
            <remarks>
            The count returned represents a moment-in-time snapshot of the contents
            of the bag.  It does not reflect any updates to the collection after 
            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.
            </remarks>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.IsEmpty">
            <summary>
            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is empty.
            </summary>
            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is empty; otherwise, false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
            synchronized with the SyncRoot.
            </summary>
            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>, this property always
            returns false.</value>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see
            cref="T:System.Collections.ICollection"/>. This property is not supported.
            </summary>
            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.Node">
            <summary>
            A class that represents a node in the lock thread list
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList">
            <summary>
            A class that represents the lock thread list
            </summary>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.#ctor(System.Threading.Thread)">
            <summary>
            ThreadLocalList constructor
            </summary>
            <param name="ownerThread">The owner thread for this list</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Add(`0,System.Boolean)">
            <summary>
            Add new item to head of the list
            </summary>
            <param name="item">The item to add.</param>
            <param name="updateCount">Whether to update the count.</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Remove(`0@)">
            <summary>
            Remove an item from the head of the list
            </summary>
            <param name="result">The removed item</param>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Peek(`0@)">
            <summary>
            Peek an item from the head of the list
            </summary>
            <param name="result">the peeked item</param>
            <returns>True if succeeded, false otherwise</returns>
        </member>
        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Steal(`0@,System.Boolean)">
            <summary>
            Steal an item from the tail of the list
            </summary>
            <param name="result">the removed item</param>
            <param name="remove">remove or peek flag</param>
        </member>
        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Count">
            <summary>
            Gets the total list count, it's not thread safe, may provide incorrect count if it is called concurrently
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.ListOperation">
            <summary>
            List operations
            </summary>
        </member>
        <member name="T:System.Collections.Concurrent.SystemThreadingCollection_IProducerConsumerCollectionDebugView`1">
            <summary>
            A simple class for the debugger view window
            </summary>
        </member>
        <member name="T:System.Linq.ParallelEnumerable">
            <summary>
            Provides a set of methods for querying objects that implement 
            ParallelQuery{TSource}.  This is the parallel equivalent of 
            <see cref="T:System.Linq.Enumerable"/>.
            </summary>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsParallel``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Enables parallelization of a query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> 
            to convert to a <see cref="T:System.Linq.ParallelQuery`1"/>.</param>
            <returns>The source as a <see cref="T:System.Linq.ParallelQuery`1"/> to bind to
            ParallelEnumerable extension methods.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsParallel``1(System.Collections.Concurrent.Partitioner{``0})">
            <summary>
            Enables parallelization of a query, as sourced by a partitioner
            responsible for splitting the input sequence into partitions.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A partitioner over the input sequence.</param>
            <returns>The <paramref name="source"/> as a ParallelQuery to bind to ParallelEnumerable extension methods.</returns>
            <remarks>
            The source partitioner's GetOrderedPartitions method is used when ordering is enabled,
            whereas the partitioner's GetPartitions is used if ordering is not enabled (the default).
            The source partitioner's GetDynamicPartitions and GetDynamicOrderedPartitions are not used.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsOrdered``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Enables treatment of a data source as if it was ordered, overriding the default of unordered.
            AsOrdered may only be invoked on sequences returned by AsParallel, ParallelEnumerable.Range,
            and ParallelEnumerable.Repeat.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The input sequence.</param>
            <exception cref="T:System.InvalidOperationException">
            Thrown if <paramref name="source"/> is not one of AsParallel, ParallelEnumerable.Range, or ParallelEnumerable.Repeat.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <remarks>
            A natural tension exists between performance and preserving order in parallel processing. By default, 
            a parallelized query behaves as if the ordering of the results is arbitrary 
            unless AsOrdered is applied or there is an explicit OrderBy operator in the query.
            </remarks>
            <returns>The source sequence which will maintain ordering in the query.</returns>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsOrdered(System.Linq.ParallelQuery)">
            <summary>
            Enables treatment of a data source as if it was ordered, overriding the default of unordered.
            AsOrdered may only be invoked on sequences returned by AsParallel, ParallelEnumerable.Range,
            and ParallelEnumerable.Repeat.
            </summary>
            <param name="source">The input sequence.</param>
            <exception cref="T:System.InvalidOperationException">
            Thrown if the <paramref name="source"/> is not one of AsParallel, ParallelEnumerable.Range, or ParallelEnumerable.Repeat.
            </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <remarks>
            A natural tension exists between performance and preserving order in parallel processing. By default, 
            a parallelized query behaves as if the ordering of the results is arbitrary unless AsOrdered 
            is applied or there is an explicit OrderBy operator in the query.
            </remarks>
            <returns>The source sequence which will maintain ordering in the query.</returns>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsUnordered``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Allows an intermediate query to be treated as if no ordering is implied among the elements.
            </summary>
            <remarks>
            AsUnordered may provide
            performance benefits when ordering is not required in a portion of a query.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The input sequence.</param>
            <returns>The source sequence with arbitrary order.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsParallel(System.Collections.IEnumerable)">
            <summary>
            Enables parallelization of a query.
            </summary>
            <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> to convert 
            to a <see cref="T:System.Linq.ParallelQuery`1"/>.</param>
            <returns>
            The source as a ParallelQuery to bind to
            ParallelEnumerable extension methods.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsSequential``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Converts a <see cref="T:System.Linq.ParallelQuery`1"/> into an 
            <see cref="T:System.Collections.Generic.IEnumerable`1"/> to force sequential
            evaluation of the query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A <see cref="T:System.Linq.ParallelQuery`1"/> to convert to an <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</param>
            <returns>The source as an <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            to bind to sequential extension methods.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.WithTaskScheduler``1(System.Linq.ParallelQuery{``0},System.Threading.Tasks.TaskScheduler)">
            <summary>
            Sets the task scheduler to execute the query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A ParallelQuery on which to set the task scheduler option.</param>
            <param name="taskScheduler">Task scheduler to execute the query.</param>
            <returns>ParallelQuery representing the same query as source, but with the task scheduler option set.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="taskScheduler"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            WithTaskScheduler is used multiple times in the query.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.WithDegreeOfParallelism``1(System.Linq.ParallelQuery{``0},System.Int32)">
            <summary>
            Sets the degree of parallelism to use in a query. Degree of parallelism is the maximum number of concurrently
            executing tasks that will be used to process the query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A ParallelQuery on which to set the limit on the degrees of parallelism.</param>
            <param name="degreeOfParallelism">The degree of parallelism for the query.</param>
            <returns>ParallelQuery representing the same query as source, with the limit on the degrees of parallelism set.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            WithDegreeOfParallelism is used multiple times in the query.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="degreeOfParallelism"/> is less than 1 or greater than 63.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.WithCancellation``1(System.Linq.ParallelQuery{``0},System.Threading.CancellationToken)">
            <summary>
            Sets the <see cref="T:System.Threading.CancellationToken"/> to associate with the query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A ParallelQuery on which to set the option.</param>
            <param name="cancellationToken">A cancellation token.</param>
            <returns>ParallelQuery representing the same query as source, but with the <seealso cref="T:System.Threading.CancellationToken"/>
            registered.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            WithCancellation is used multiple times in the query.
            </exception>
            <exception cref="T:System.ObjectDisposedException">
            The <see cref="T:System.Threading.CancellationTokenSource"/> associated with the <paramref name="cancellationToken"/> has been disposed.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.WithExecutionMode``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelExecutionMode)">
            <summary>
            Sets the execution mode of the query.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A ParallelQuery on which to set the option.</param>
            <param name="executionMode">The mode in which to execute the query.</param>
            <returns>ParallelQuery representing the same query as source, but with the 
            <seealso cref="T:System.Linq.ParallelExecutionMode"/> registered.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="executionMode"/> is not a valid <see cref="T:System.Linq.ParallelExecutionMode"/> value.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            WithExecutionMode is used multiple times in the query.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.WithMergeOptions``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelMergeOptions)">
            <summary>
            Sets the merge options for this query, which specify how the query will buffer output.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A ParallelQuery on which to set the option.</param>
            <param name="mergeOptions">The merge optiosn to set for this query.</param>
            <returns>ParallelQuery representing the same query as source, but with the 
            <seealso cref="T:System.Linq.ParallelMergeOptions"/> registered.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="mergeOptions"/> is not a valid <see cref="T:System.Linq.ParallelMergeOptions"/> value.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            WithMergeOptions is used multiple times in the query.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Range(System.Int32,System.Int32)">
            <summary>
            Generates a parallel sequence of integral numbers within a specified range.
            </summary>
            <param name="start">The value of the first integer in the sequence.</param>
            <param name="count">The number of sequential integers to generate.</param>
            <returns>An <b>IEnumerable&lt;Int32&gt;</b> in C# or <B>IEnumerable(Of Int32)</B> in 
            Visual Basic that contains a range of sequential integral numbers.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="count"/> is less than 0
            -or-
            <paramref name="start"/> + <paramref name="count"/> - 1 is larger than <see cref="M:System.Int32.MaxValue"/>.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Repeat``1(``0,System.Int32)">
            <summary>
            Generates a parallel sequence that contains one repeated value.
            </summary>
            <typeparam name="TResult">The type of the value to be repeated in the result sequence.</typeparam>
            <param name="element">The value to be repeated.</param>
            <param name="count">The number of times to repeat the value in the generated sequence.</param>
            <returns>A sequence that contains a repeated value.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="count"/> is less than 0.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Empty``1">
            <summary>
            Returns an empty ParallelQuery{TResult} that has the specified type argument.
            </summary>
            <typeparam name="TResult">The type to assign to the type parameter of the returned 
            generic sequence.</typeparam>
            <returns>An empty sequence whose type argument is <typeparamref name="TResult"/>.</returns>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ForAll``1(System.Linq.ParallelQuery{``0},System.Action{``0})">
            <summary>
            Invokes in parallel the specified action for each element in the <paramref name="source"/>.
            </summary>
            <remarks>
            This is an efficient way to process the output from a parallelized query because it does 
            not require a merge step at the end.  However, order of execution is non-deterministic.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The <see cref="T:System.Linq.ParallelQuery`1"/> whose elements will be processed by 
            <paramref name="action"/>.</param>
            <param name="action">An Action to invoke on each element.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="action"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Where``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Filters in parallel a sequence of values based on a predicate.
            </summary>
            <typeparam name="TSource">The type of the elements of source.</typeparam>
            <param name="source">A sequence to filter.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>A sequence that contains elements from the input sequence that satisfy 
            the condition.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Where``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
            <summary>
            Filters in parallel a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.
            </summary>
            <typeparam name="TSource">The type of the elements of source.</typeparam>
            <param name="source">A sequence to filter.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>A sequence that contains elements from the input sequence that satisfy the condition.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Select``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Projects in parallel each element of a sequence into a new form.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of elements resturned by <b>selector</b>.</typeparam>
            <param name="source">A sequence of values to invoke a transform function on.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>A sequence whose elements are the result of invoking the transform function on each 
            element of <paramref name="source"/>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Select``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,``1})">
            <summary>
            Projects in parallel each element of a sequence into a new form by incorporating the element's index.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of elements resturned by <b>selector</b>.</typeparam>
            <param name="source">A sequence of values to invoke a transform function on.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>A sequence whose elements are the result of invoking the transform function on each 
            element of <paramref name="source"/>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Zip``3(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``1,``2})">
            <summary>
            Merges in parallel two sequences by using the specified predicate function.
            </summary>
            <typeparam name="TFirst">The type of the elements of the first sequence.</typeparam>
            <typeparam name="TSecond">The type of the elements of the second sequence.</typeparam>
            <typeparam name="TResult">The type of the return elements.</typeparam>
            <param name="first">The first sequence to zip.</param>
            <param name="second">The second sequence to zip.</param>
            <param name="resultSelector">A function to create a result element from two matching elements.</param>
            <returns>
            A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
            resultSelector pairwise on two sequences. If the sequence lengths are unequal, this truncates
            to the length of the shorter sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Zip``3(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``1,``2})">
            <summary>
            This Zip overload should never be called. 
            This method is marked as obsolete and always throws 
            <see cref="T:System.NotSupportedException"/> when invoked.
            </summary>
            <typeparam name="TFirst">This type parameter is not used.</typeparam>
            <typeparam name="TSecond">This type parameter is not used.</typeparam>
            <typeparam name="TResult">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <param name="resultSelector">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Zip with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Zip operator would appear to be bind to the parallel implementation, but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})">
            <summary>
            Correlates in parallel the elements of two sequences based on matching keys. 
            The default equality comparer is used to compare keys.
            </summary>
            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
            <typeparam name="TResult">The type of the result elements.</typeparam>
            <param name="outer">The first sequence to join.</param>
            <param name="inner">The sequence to join to the first sequence.</param>
            <param name="outerKeySelector">A function to extract the join key from each element of 
            the first sequence.</param>
            <param name="innerKeySelector">A function to extract the join key from each element of 
            the second sequence.</param>
            <param name="resultSelector">A function to create a result element from two matching elements.</param>
            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
            an inner join on two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})">
            <summary>
            This Join overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when invoked.
            </summary>
            <typeparam name="TOuter">This type parameter is not used.</typeparam>
            <typeparam name="TInner">This type parameter is not used.</typeparam>
            <typeparam name="TKey">This type parameter is not used.</typeparam>
            <typeparam name="TResult">This type parameter is not used.</typeparam>
            <param name="outer">This parameter is not used.</param>
            <param name="inner">This parameter is not used.</param>
            <param name="outerKeySelector">This parameter is not used.</param>
            <param name="innerKeySelector">This parameter is not used.</param>
            <param name="resultSelector">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage Join with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Join operator would appear to be binding to the parallel implementation, but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
            Correlates in parallel the elements of two sequences based on matching keys. 
            A specified IEqualityComparer{T} is used to compare keys.
            </summary>
            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
            <typeparam name="TResult">The type of the result elements.</typeparam>
            <param name="outer">The first sequence to join.</param>
            <param name="inner">The sequence to join to the first sequence.</param>
            <param name="outerKeySelector">A function to extract the join key from each element 
            of the first sequence.</param>
            <param name="innerKeySelector">A function to extract the join key from each element 
            of the second sequence.</param>
            <param name="resultSelector">A function to create a result element from two matching elements.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to hash and compare keys.</param>
            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
            an inner join on two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
            This Join overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when invoked.
            </summary>
            <typeparam name="TOuter">This type parameter is not used.</typeparam>
            <typeparam name="TInner">This type parameter is not used.</typeparam>
            <typeparam name="TKey">This type parameter is not used.</typeparam>
            <typeparam name="TResult">This type parameter is not used.</typeparam>
            <param name="outer">This parameter is not used.</param>
            <param name="inner">This parameter is not used.</param>
            <param name="outerKeySelector">This parameter is not used.</param>
            <param name="innerKeySelector">This parameter is not used.</param>
            <param name="resultSelector">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Join with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Join operator would appear to be binding to the parallel implementation, but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})">
            <summary>
            Correlates in parallel the elements of two sequences based on equality of keys and groups the results. 
            The default equality comparer is used to compare keys.
            </summary>
            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
            <typeparam name="TResult">The type of the result elements.</typeparam>
            <param name="outer">The first sequence to join.</param>
            <param name="inner">The sequence to join to the first sequence.</param>
            <param name="outerKeySelector">A function to extract the join key from each element 
            of the first sequence.</param>
            <param name="innerKeySelector">A function to extract the join key from each element 
            of the second sequence.</param>
            <param name="resultSelector">A function to create a result element from an element from 
            the first sequence and a collection of matching elements from the second sequence.</param>
            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
            a grouped join on two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})">
             <summary>
             This GroupJoin overload should never be called. 
             This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
             </summary>
             <typeparam name="TOuter">This type parameter is not used.</typeparam>
             <typeparam name="TInner">This type parameter is not used.</typeparam>
             <typeparam name="TKey">This type parameter is not used.</typeparam>
             <typeparam name="TResult">This type parameter is not used.</typeparam>
             <param name="outer">This parameter is not used.</param>
             <param name="inner">This parameter is not used.</param>
             <param name="outerKeySelector">This parameter is not used.</param>
             <param name="innerKeySelector">This parameter is not used.</param>
             <param name="resultSelector">This parameter is not used.</param>
             <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
             <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
             <remarks>
             This overload exists to disallow usage of GroupJoin with a left data source of type
             <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
             Otherwise, the GroupJoin operator would appear to be binding to the parallel implementation, 
             but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
            Correlates in parallel the elements of two sequences based on key equality and groups the results. 
            A specified IEqualityComparer{T} is used to compare keys.
            </summary>
            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
            <typeparam name="TResult">The type of the result elements.</typeparam>
            <param name="outer">The first sequence to join.</param>
            <param name="inner">The sequence to join to the first sequence.</param>
            <param name="outerKeySelector">A function to extract the join key from each element 
            of the first sequence.</param>
            <param name="innerKeySelector">A function to extract the join key from each element 
            of the second sequence.</param>
            <param name="resultSelector">A function to create a result element from an element from 
            the first sequence and a collection of matching elements from the second sequence.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to hash and compare keys.</param>
            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
            a grouped join on two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
            This GroupJoin overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TOuter">This type parameter is not used.</typeparam>
            <typeparam name="TInner">This type parameter is not used.</typeparam>
            <typeparam name="TKey">This type parameter is not used.</typeparam>
            <typeparam name="TResult">This type parameter is not used.</typeparam>
            <param name="outer">This parameter is not used.</param>
            <param name="inner">This parameter is not used.</param>
            <param name="outerKeySelector">This parameter is not used.</param>
            <param name="innerKeySelector">This parameter is not used.</param>
            <param name="resultSelector">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of GroupJoin with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the GroupJoin operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SelectMany``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
            <summary>
            Projects in parallel each element of a sequence to an IEnumerable{T} 
            and flattens the resulting sequences into one sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of the elements of the sequence returned by <B>selector</B>.</typeparam>
            <param name="source">A sequence of values to project.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
            function on each element of the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SelectMany``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})">
            <summary>
            Projects in parallel each element of a sequence to an IEnumerable{T}, and flattens the resulting 
            sequences into one sequence. The index of each source element is used in the projected form of 
            that element.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of the elements of the sequence returned by <B>selector</B>.</typeparam>
            <param name="source">A sequence of values to project.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
            function on each element of the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SelectMany``3(System.Linq.ParallelQuery{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})">
            <summary>
            Projects each element of a sequence to an IEnumerable{T}, 
            flattens the resulting sequences into one sequence, and invokes a result selector 
            function on each element therein.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TCollection">The type of the intermediate elements collected by <paramref name="collectionSelector"/>.</typeparam>
            <typeparam name="TResult"></typeparam>
            <param name="source">A sequence of values to project.</param>
            <param name="collectionSelector">A transform function to apply to each source element; 
            the second parameter of the function represents the index of the source element.</param>
            <param name="resultSelector">A function to create a result element from an element from 
            the first sequence and a collection of matching elements from the second sequence.</param>
            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
            function <paramref name="collectionSelector"/> on each element of <paramref name="source"/> and then mapping 
            each of those sequence elements and their corresponding source element to a result element.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="collectionSelector"/> or
            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SelectMany``3(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})">
            <summary>
            Projects each element of a sequence to an IEnumerable{T}, flattens the resulting 
            sequences into one sequence, and invokes a result selector function on each element 
            therein. The index of each source element is used in the intermediate projected 
            form of that element.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TCollection">The type of the intermediate elements collected by 
            <paramref name="collectionSelector"/>.</typeparam>
            <typeparam name="TResult">The type of elements to return.</typeparam>
            <param name="source">A sequence of values to project.</param>
            <param name="collectionSelector">A transform function to apply to each source element; 
            the second parameter of the function represents the index of the source element.</param>
            <param name="resultSelector">A function to create a result element from an element from 
            the first sequence and a collection of matching elements from the second sequence.</param>
            <returns>
            A sequence whose elements are the result of invoking the one-to-many transform 
            function <paramref name="collectionSelector"/> on each element of <paramref name="source"/> and then mapping 
            each of those sequence elements and their corresponding source element to a 
            result element.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="collectionSelector"/> or
            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.OrderBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Sorts in parallel the elements of a sequence in ascending order according to a key.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort. 
            To achieve a stable sort, change a query of the form:
            <code>var ordered = source.OrderBy((e) => e.k);</code>
            to instead be formed as:
            <code>var ordered = source.Select((e,i) => new { E=e, I=i }).OrderBy((v) => v.i).Select((v) => v.e);</code>
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence of values to order.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.OrderBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
            <summary>
            Sorts in parallel the elements of a sequence in ascending order by using a specified comparer.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence of values to order.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="comparer">An IComparer{TKey} to compare keys.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted according 
            to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.OrderByDescending``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Sorts in parallel the elements of a sequence in descending order according to a key.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence of values to order.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            descending according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.OrderByDescending``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
            <summary>
            Sorts the elements of a sequence in descending order by using a specified comparer.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence of values to order.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="comparer">An IComparer{TKey} to compare keys.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted descending 
            according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ThenBy``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Performs in parallel a subsequent ordering of the elements in a sequence 
            in ascending order according to a key.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource} than 
            contains elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are 
            sorted according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ThenBy``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
            <summary>
            Performs in parallel a subsequent ordering of the elements in a sequence in 
            ascending order by using a specified comparer.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource} that contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="comparer">An IComparer{TKey} to compare keys.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ThenByDescending``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Performs in parallel a subsequent ordering of the elements in a sequence in 
            descending order, according to a key.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource} than contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            descending according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ThenByDescending``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
            <summary>
            Performs in parallel a subsequent ordering of the elements in a sequence in descending 
            order by using a specified comparer.
            </summary>
            <remarks>
            In contrast to the sequential implementation, this is not a stable sort.
            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
            an approach to implementing a stable sort.
            </remarks>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource} than contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="comparer">An IComparer{TKey} to compare keys.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            descending according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified key selector function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource}than contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <returns>An OrderedParallelQuery{TSource}whose elements are sorted 
            descending according to a key.</returns>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>>.</typeparam>
            <param name="source">An OrderedParallelQuery{TSource} than contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="comparer">An IComparer{TSource} to compare keys.</param>
            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
            descending according to a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified key selector function and 
            projects the elements for each group by using a specified function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the elements in the IGrouping</typeparam>
            <param name="source">An OrderedParallelQuery&lt;(Of &lt;(TElement&gt;)&gt;) than contains 
            elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="elementSelector">A function to map each source element to an element in an  IGrouping.</param>
            <returns>A ParallelQuery&lt;IGrouping&lt;TKey, TElement&gt;&gt; in C# or 
            ParallelQuery(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping 
            generic object contains a collection of objects of type <typeparamref name="TElement"/> and a key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups in parallel the elements of a sequence according to a key selector function. 
            The keys are compared by using a comparer and each group's elements are projected by 
            using a specified function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the elements in the IGrouping</typeparam>
            <param name="source">An OrderedParallelQuery{TSource}than contains elements to sort.</param>
            <param name="keySelector">A function to extract a key from an element.</param>
            <param name="elementSelector">A function to map each source element to an element in an  IGrouping.</param>
            <param name="comparer">An IComparer{TSource} to compare keys.</param>
            <returns>
            A ParallelQuery{IGrouping{TKey, TElement}} in C# or 
            ParallelQuery(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping 
            generic object contains a collection of objects of type <typeparamref name="TElement"/> and a key.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified 
            key selector function and creates a result value from each group and its key.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
            <param name="source">A sequence whose elements to group.</param>
            <param name="keySelector">A function to extract the key for each element.</param>
            <param name="resultSelector">A function to create a result value from each group.</param>
            <returns>A collection of elements of type <typeparamref name="TResult"/> where each element represents a 
            projection over a group and its key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified key selector function 
            and creates a result value from each group and its key. The keys are compared 
            by using a specified comparer.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
            <param name="source">A sequence whose elements to group.</param>
            <param name="keySelector">A function to extract the key for each element.</param>
            <param name="resultSelector">A function to create a result value from each group.</param>
            <param name="comparer">An IEqualityComparer{TKey} to compare keys.</param>
            <returns>
            An <B>ParallelQuery&lt;IGrouping&lt;TKey, TResult&gt;&gt;</B> in C# or 
            <B>ParallelQuery(Of IGrouping(Of TKey, TResult))</B> in Visual Basic where each 
            IGrouping&lt;(Of &lt;(TKey, TResult&gt;)&gt;) object contains a collection of objects 
            of type <typeparamref name="TResult"/> and a key.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``4(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3})">
            <summary>
            Groups in parallel the elements of a sequence according to a specified key 
            selector function and creates a result value from each group and its key. 
            The elements of each group are projected by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the elements in each 
            IGrouping{TKey, TElement}.</typeparam>
            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
            <param name="source">A sequence whose elements to group.</param>
            <param name="keySelector">A function to extract the key for each element.</param>
            <param name="elementSelector">A function to map each source element to an element in an 
            IGrouping&lt;TKey, TElement&gt;.</param>
            <param name="resultSelector">A function to create a result value from each group.</param>
            <returns>A collection of elements of type <typeparamref name="TElement"/> where each element represents a 
            projection over a group and its key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="elementSelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.GroupBy``4(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function and 
            creates a result value from each group and its key. Key values are compared by using a 
            specified comparer, and the elements of each group are projected by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the elements in each 
            IGrouping{TKey, TElement}.</typeparam>
            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
            <param name="source">A sequence whose elements to group.</param>
            <param name="keySelector">A function to extract the key for each element.</param>
            <param name="elementSelector">A function to map each source element to an element in an 
            IGrouping{Key, TElement}.</param>
            <param name="resultSelector">A function to create a result value from each group.</param>
            <param name="comparer">An IEqualityComparer{TKey} to compare keys.</param>
            <returns>A collection of elements of type <typeparamref name="TResult"/> where each element represents a 
            projection over a group and its key.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or
            <paramref name="elementSelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.PerformSequentialAggregation``2(System.Linq.ParallelQuery{``0},``1,System.Boolean,System.Func{``1,``0,``1})">
            <summary>
            Run an aggregation sequentially. If the user-provided reduction function throws an exception, wrap
            it with an AggregateException.
            </summary>
            <param name="source"></param>
            <param name="seed"></param>
            <param name="seedIsSpecified">
            if true, use the seed provided in the method argument
            if false, use the first element of the sequence as the seed instead
            </param>
            <param name="func"></param>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Aggregate``1(System.Linq.ParallelQuery{``0},System.Func{``0,``0,``0})">
            <summary>
            Applies in parallel an accumulator function over a sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence to aggregate over.</param>
            <param name="func">An accumulator function to be invoked on each element.</param>
            <returns>The final accumulator value.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="func"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Aggregate``2(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1})">
            <summary>
            Applies in parallel an accumulator function over a sequence. 
            The specified seed value is used as the initial accumulator value.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
            <param name="source">A sequence to aggregate over.</param>
            <param name="seed">The initial accumulator value.</param>
            <param name="func">An accumulator function to be invoked on each element.</param>
            <returns>The final accumulator value.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="func"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})">
            <summary>
            Applies in parallel an accumulator function over a sequence. The specified 
            seed value is used as the initial accumulator value, and the specified 
            function is used to select the result value.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
            <typeparam name="TResult">The type of the resulting value.</typeparam>
            <param name="source">A sequence to aggregate over.</param>
            <param name="seed">The initial accumulator value.</param>
            <param name="func">An accumulator function to be invoked on each element.</param>
            <param name="resultSelector">A function to transform the final accumulator value 
            into the result value.</param>
            <returns>The transformed final accumulator value.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="func"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``1,``1},System.Func{``1,``2})">
            <summary>
            Applies in parallel an accumulator function over a sequence. This overload is not
            available in the sequential implementation.
            </summary>
            <remarks>
            This overload is specific to processing a parallelized query. A parallelized query may 
            partition the data source sequence into several sub-sequences (partitions). 
            The <paramref name="updateAccumulatorFunc"/> is invoked on each element within partitions. 
            Each partition then yields a single accumulated result. The <paramref name="combineAccumulatorsFunc"/>
            is then invoked on the results of each partition to yield a single element. This element is then
            transformed by the <paramref name="resultSelector"/> function.
            </remarks>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
            <typeparam name="TResult">The type of the resulting value.</typeparam>
            <param name="source">A sequence to aggregate over.</param>
            <param name="seed">The initial accumulator value.</param>
            <param name="updateAccumulatorFunc">
            An accumulator function to be invoked on each element in a partition.
            </param>
            <param name="combineAccumulatorsFunc">
            An accumulator function to be invoked on the yielded element from each partition.
            </param>
            <param name="resultSelector">
            A function to transform the final accumulator value into the result value.
            </param>
            <returns>The transformed final accumulator value.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="updateAccumulatorFunc"/> 
            or <paramref name="combineAccumulatorsFunc"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},System.Func{``1},System.Func{``1,``0,``1},System.Func{``1,``1,``1},System.Func{``1,``2})">
            <summary>
            Applies in parallel an accumulator function over a sequence.  This overload is not
            available in the sequential implementation.
            </summary>
            <remarks>
            This overload is specific to parallelized queries. A parallelized query may partition the data source sequence
            into several sub-sequences (partitions). The <paramref name="updateAccumulatorFunc"/> is invoked 
            on each element within partitions. Each partition then yields a single accumulated result. 
            The <paramref name="combineAccumulatorsFunc"/>
            is then invoked on the results of each partition to yield a single element. This element is then
            transformed by the <paramref name="resultSelector"/> function.
            </remarks>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
            <typeparam name="TResult">The type of the resulting value.</typeparam>
            <param name="source">A sequence to aggregate over.</param>
            <param name="seedFactory">
            A function that returns the initial accumulator value.
            </param>
            <param name="updateAccumulatorFunc">
            An accumulator function to be invoked on each element in a partition.
            </param>
            <param name="combineAccumulatorsFunc">
            An accumulator function to be invoked on the yielded element from each partition. 
            </param>
            <param name="resultSelector">
            A function to transform the final accumulator value into the result value.
            </param>
            <returns>The transformed final accumulator value.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="seedFactory"/> or <paramref name="updateAccumulatorFunc"/> 
            or <paramref name="combineAccumulatorsFunc"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Count``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the number of elements in a parallel sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence that contains elements to be counted.</param>
            <returns>The number of elements in the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The number of elements in source is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Count``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns a number that represents how many elements in the specified 
            parallel sequence satisfy a condition.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence that contains elements to be counted.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            A number that represents how many elements in the sequence satisfy the condition 
            in the predicate function.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The number of elements in source is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.LongCount``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns an Int64 that represents the total number of elements in a parallel sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence that contains elements to be counted.</param>
            <returns>The number of elements in the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The number of elements in source is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.LongCount``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns an Int64 that represents how many elements in a parallel sequence satisfy a condition.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence that contains elements to be counted.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            A number that represents how many elements in the sequence satisfy the condition 
            in the predicate function.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The number of elements in source is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Int32})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Int64})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Single})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Double})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Decimal})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
            <summary>
            Computes in parallel the sum of a sequence of values.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Computes in parallel the sum of the sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to calculate the sum of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The sum of the values in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Int32})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Int64})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Single})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Double})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Decimal})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the minimum value in a parallel sequence of values.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements and <typeparamref name="TSource"/> is a non-nullable value type.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Min``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the minimum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="source">A sequence of values to determine the minimum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The minimum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements and <typeparamref name="TResult"/> is a non-nullable value type.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Int32})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Int64})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Single})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Double})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Decimal})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the maximum value in a parallel sequence of values.
            </summary>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements and <typeparam name="TSource"/> is a non-nullable value type.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Max``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Invokes in parallel a transform function on each element of a 
            sequence and returns the maximum value.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="source">A sequence of values to determine the maximum value of.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The maximum value in the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements and <typeparamref name="TResult"/> is a non-nullable value type.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Int32})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Int64})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Single})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Double})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Decimal})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
            <summary>
            Computes in parallel the average of a sequence of values.
            </summary>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int64.MaxValue"/>.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
            <summary>
            Computes in parallel the average of a sequence of values that are obtained 
            by invoking a transform function on each element of the input sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values that are used to calculate an average.</param>
            <param name="selector">A transform function to apply to each element.</param>
            <returns>The average of the sequence of values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Any``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Determines in parallel whether any element of a sequence satisfies a condition.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">An IEnumerable whose elements to apply the predicate to.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Any``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Determines whether a parallel sequence contains any elements.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The IEnumerable to check for emptiness.</param>
            <returns>true if the source sequence contains any elements; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.All``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Determines in parallel whether all elements of a sequence satisfy a condition.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence whose elements to apply the predicate to.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            true if all elements in the source sequence pass the test in the specified predicate; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Contains``1(System.Linq.ParallelQuery{``0},``0)">
            <summary>
            Determines in parallel whether a sequence contains a specified element 
            by using the default equality comparer.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence in which to locate a value.</param>
            <param name="value">The value to locate in the sequence.</param>
            <returns>
            true if the source sequence contains an element that has the specified value; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Contains``1(System.Linq.ParallelQuery{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Determines in parallel whether a sequence contains a specified element by using a 
            specified IEqualityComparer{T}.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence in which to locate a value.</param>
            <param name="value">The value to locate in the sequence.</param>
            <param name="comparer">An equality comparer to compare values.</param>
            <returns>
            true if the source sequence contains an element that has the specified value; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Take``1(System.Linq.ParallelQuery{``0},System.Int32)">
            <summary>
            Returns a specified number of contiguous elements from the start of a parallel sequence.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="count">The number of elements to return.</param>
            <returns>
            A sequence that contains the specified number of elements from the start of the input sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.TakeWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns elements from a parallel sequence as long as a specified condition is true.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            A sequence that contains the elements from the input sequence that occur before 
            the element at which the test no longer passes.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.TakeWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
            <summary>
            Returns elements from a parallel sequence as long as a specified condition is true. 
            The element's index is used in the logic of the predicate function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="predicate">
            A function to test each source element for a condition; the second parameter of the 
            function represents the index of the source element.
            </param>
            <returns>
            A sequence that contains elements from the input sequence that occur before 
            the element at which the test no longer passes.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Skip``1(System.Linq.ParallelQuery{``0},System.Int32)">
            <summary>
            Bypasses a specified number of elements in a parallel sequence and then returns the remaining elements.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="count">The number of elements to skip before returning the remaining elements.</param>
            <returns>
            A sequence that contains the elements that occur after the specified index in the input sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SkipWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Bypasses elements in a parallel sequence as long as a specified 
            condition is true and then returns the remaining elements.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>A sequence that contains the elements from the input sequence starting at 
            the first element in the linear series that does not pass the test specified by 
            <B>predicate</B>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SkipWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
            <summary>
            Bypasses elements in a parallel sequence as long as a specified condition is true and 
            then returns the remaining elements. The element's index is used in the logic of 
            the predicate function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return elements from.</param>
            <param name="predicate">
            A function to test each source element for a condition; the 
            second parameter of the function represents the index of the source element.
            </param>
            <returns>
            A sequence that contains the elements from the input sequence starting at the 
            first element in the linear series that does not pass the test specified by 
            <B>predicate</B>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Concat``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
            <summary>
            Concatenates two parallel sequences.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">The first sequence to concatenate.</param>
            <param name="second">The sequence to concatenate to the first sequence.</param>
            <returns>A sequence that contains the concatenated elements of the two input sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Concat``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This Concat overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Concat with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Concat operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
            <summary>
            Determines whether two parallel sequences are equal by comparing the elements by using 
            the default equality comparer for their type.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">A sequence to compare to <b>second</b>.</param>
            <param name="second">A sequence to compare to the first input sequence.</param>
            <returns>
            true if the two source sequences are of equal length and their corresponding elements 
            are equal according to the default equality comparer for their type; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This SequenceEqual overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">Thrown every time this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of SequenceEqual with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the SequenceEqual operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Determines whether two parallel sequences are equal by comparing their elements by 
            using a specified IEqualityComparer{T}.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">A sequence to compare to <paramref name="second"/>.</param>
            <param name="second">A sequence to compare to the first input sequence.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to use to compare elements.</param>
            <returns>
            true if the two source sequences are of equal length and their corresponding 
            elements are equal according to the default equality comparer for their type; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.DisposeEnumerator``1(System.Collections.Generic.IEnumerator{``0},System.Linq.Parallel.CancellationState)">
            <summary>
            A helper method for SequenceEqual to dispose an enumerator. If an exception is thrown by the disposal, 
            it gets wrapped into an AggregateException, unless it is an OCE with the query's CancellationToken.
            </summary>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            This SequenceEqual overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">Thrown every time this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of SequenceEqual with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the SequenceEqual operator would appear to be binding to the parallel implementation, 
            but would in reality bind to sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Distinct``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns distinct elements from a parallel sequence by using the 
            default equality comparer to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to remove duplicate elements from.</param>
            <returns>A sequence that contains distinct elements from the source sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Distinct``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Returns distinct elements from a parallel sequence by using a specified 
            IEqualityComparer{T} to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to remove duplicate elements from.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
            <returns>A sequence that contains distinct elements from the source sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
            <summary>
            Produces the set union of two parallel sequences by using the default equality comparer.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">A sequence whose distinct elements form the first set for the union.</param>
            <param name="second">A sequence whose distinct elements form the second set for the union.</param>
            <returns>A sequence that contains the elements from both input sequences, excluding duplicates.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This Union overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Union with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Union operator would appear to be binding to the parallel implementation, 
            but would in reality bind to sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Produces the set union of two parallel sequences by using a specified IEqualityComparer{T}.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">A sequence whose distinct elements form the first set for the union.</param>
            <param name="second">A sequence whose distinct elements form the second set for the union.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
            <returns>A sequence that contains the elements from both input sequences, excluding duplicates.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            This Union overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Union with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Union operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
            <summary>
            Produces the set intersection of two parallel sequences by using the 
            default equality comparer to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first"
            >A sequence whose distinct elements that also appear in <paramref name="second"/> will be returned.
            </param>
            <param name="second">
            A sequence whose distinct elements that also appear in the first sequence will be returned.
            </param>
            <returns>A sequence that contains the elements that form the set intersection of two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This Intersect overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Intersect with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Intersect operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Produces the set intersection of two parallel sequences by using 
            the specified IEqualityComparer{T} to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">
            A sequence whose distinct elements that also appear in <paramref name="second"/> will be returned.
            </param>
            <param name="second">
            A sequence whose distinct elements that also appear in the first sequence will be returned.
            </param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
            <returns>A sequence that contains the elements that form the set intersection of two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            This Intersect overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Intersect with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Intersect operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
            <summary>
            Produces the set difference of two parallel sequences by using 
            the default equality comparer to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">
            A sequence whose elements that are not also in <paramref name="second"/> will be returned.
            </param>
            <param name="second">
            A sequence whose elements that also occur in the first sequence will cause those 
            elements to be removed from the returned sequence.
            </param>
            <returns>A sequence that contains the set difference of the elements of two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This Except overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Except with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Except operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Produces the set difference of two parallel sequences by using the 
            specified IEqualityComparer{T} to compare values.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="first">A sequence whose elements that are not also in <paramref name="second"/> will be returned.</param>
            <param name="second">
            A sequence whose elements that also occur in the first sequence will cause those elements 
            to be removed from the returned sequence.
            </param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
            <returns>A sequence that contains the set difference of the elements of two sequences.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            This Except overload should never be called. 
            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
            </summary>
            <typeparam name="TSource">This type parameter is not used.</typeparam>
            <param name="first">This parameter is not used.</param>
            <param name="second">This parameter is not used.</param>
            <param name="comparer">This parameter is not used.</param>
            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
            <remarks>
            This overload exists to disallow usage of Except with a left data source of type
            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Otherwise, the Except operator would appear to be binding to the parallel implementation, 
            but would in reality bind to the sequential implementation.
            </remarks>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.AsEnumerable``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Converts a <see cref="T:System.Linq.ParallelQuery`1"/> into an 
            <see cref="T:System.Collections.Generic.IEnumerable`1"/> to force sequential
            evaluation of the query.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to type as <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</param>
            <returns>The input sequence types as <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToArray``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Creates an array from a ParallelQuery{T}.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence to create an array from.</param>
            <returns>An array that contains the elements from the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToList``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Creates a List{T} from an ParallelQuery{T}.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence to create a List&lt;(Of &lt;(T&gt;)&gt;) from.</param>
            <returns>A List&lt;(Of &lt;(T&gt;)&gt;) that contains elements from the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to 
            a specified key selector function.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <returns>A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains keys and values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
            -or-
            <paramref name="keySelector"/> produces duplicate keys for two elements.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to a 
            specified key selector function and key comparer.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
            <returns>A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains keys and values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
            -or-
            <paramref name="keySelector"/> produces duplicate keys for two elements.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
            <summary>
            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to specified 
            key selector and element selector functions.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="elementSelector">
            A transform function to produce a result element value from each element.
            </param>
            <returns>
            A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains values of type <typeparamref name="TElement"/> 
            selected from the input sequence
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
            -or-
            <paramref name="keySelector"/> produces duplicate keys for two elements.
            -or- 
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates a Dictionary{TKey,TValue from a ParallelQuery{T} according to a 
            specified key selector function, a comparer, and an element selector function.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="elementSelector">A transform function to produce a result element 
            value from each element.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
            <returns>
            A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains values of type <typeparamref name="TElement"/> 
            selected from the input sequence
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
            -or-
            <paramref name="keySelector"/> produces duplicate keys for two elements.
            -or-
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToLookup``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
            <summary>
            Creates an ILookup{TKey,T} from a ParallelQuery{T} according to a specified key selector function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <returns>A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains keys and values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToLookup``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates an ILookup{TKey,T} from a ParallelQuery{T} according to a specified 
            key selector function and key comparer.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
            <returns>A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains keys and values.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToLookup``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
            <summary>
            Creates an ILookup{TKey,TElement} from a ParallelQuery{T} according to specified 
            key selector and element selector functions.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="elementSelector">
            A transform function to produce a result element value from each element.
            </param>
            <returns>
            A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains values of type TElement 
            selected from the input sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ToLookup``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates an ILookup{TKey,TElement} from a ParallelQuery{T} according to 
            a specified key selector function, a comparer and an element selector function.
            </summary>
            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
            <param name="keySelector">A function to extract a key from each element.</param>
            <param name="elementSelector">
            A transform function to produce a result element value from each element.
            </param>
            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
            <returns>
            A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains values of type TElement selected 
            from the input sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Reverse``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Inverts the order of the elements in a parallel sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence of values to reverse.</param>
            <returns>A sequence whose elements correspond to those of the input sequence in reverse order.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.OfType``1(System.Linq.ParallelQuery)">
            <summary>
            Filters the elements of a ParallelQuery based on a specified type.
            </summary>
            <typeparam name="TResult">The type to filter the elements of the sequence on.</typeparam>
            <param name="source">The sequence whose elements to filter.</param>
            <returns>A sequence that contains elements from the input sequence of type <typeparamref name="TResult"/>.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Cast``1(System.Linq.ParallelQuery)">
            <summary>
            Converts the elements of a ParallelQuery to the specified type.
            </summary>
            <typeparam name="TResult">The type to convert the elements of <paramref name="source"/> to.</typeparam>
            <param name="source">The sequence that contains the elements to be converted.</param>
            <returns>
            A sequence that contains each element of the source sequence converted to the specified type.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.First``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the first element of a parallel sequence.</summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the first element of.</param>
            <returns>The first element in the specified sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.First``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the first element in a parallel sequence that satisfies a specified condition.
            </summary>
            <remarks>There's a temporary difference from LINQ to Objects, this does not throw
            ArgumentNullException when the predicate is null.</remarks>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return an element from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>The first element in the sequence that passes the test in the specified predicate function.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            No element in <paramref name="source"/> satisfies the condition in <paramref name="predicate"/>.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.FirstOrDefault``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the first element of a parallel sequence, or a default value if the 
            sequence contains no elements.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the first element of.</param>
            <returns>
            default(<B>TSource</B>) if <paramref name="source"/> is empty; otherwise, the first element in <paramref name="source"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.FirstOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the first element of the parallel sequence that satisfies a condition or a 
            default value if no such element is found.
            </summary>
            <remarks>There's a temporary difference from LINQ to Objects, this does not throw
            ArgumentNullException when the predicate is null.</remarks>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return an element from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            default(<B>TSource</B>) if <paramref name="source"/> is empty or if no element passes the test 
            specified by <B>predicate</B>; otherwise, the first element in <paramref name="source"/> that 
            passes the test specified by <B>predicate</B>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Last``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the last element of a parallel sequence.</summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the last element from.</param>
            <returns>The value at the last position in the source sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="source"/> contains no elements.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Last``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the last element of a parallel sequence that satisfies a specified condition.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return an element from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            The last element in the sequence that passes the test in the specified predicate function.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            No element in <paramref name="source"/> satisfies the condition in <paramref name="predicate"/>.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.LastOrDefault``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the last element of a parallel sequence, or a default value if the 
            sequence contains no elements.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return an element from.</param>
            <returns>
            default(<typeparamref name="TSource"/>) if the source sequence is empty; otherwise, the last element in the sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.LastOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the last element of a parallel sequence that satisfies a condition, or 
            a default value if no such element is found.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return an element from.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>
            default(<typeparamref name="TSource"/>) if the sequence is empty or if no elements pass the test in the 
            predicate function; otherwise, the last element that passes the test in the predicate function.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Single``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the only element of a parallel sequence, and throws an exception if there is not 
            exactly one element in the sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the single element of.</param>
            <returns>The single element of the input sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The input sequence contains more than one element. -or- The input sequence is empty.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.Single``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the only element of a parallel sequence that satisfies a specified condition, 
            and throws an exception if more than one such element exists.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the single element of.</param>
            <param name="predicate">A function to test an element for a condition.</param>
            <returns>The single element of the input sequence that satisfies a condition.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.InvalidOperationException">
            No element satisfies the condition in <paramref name="predicate"/>. -or- More than one element satisfies the condition in <paramref name="predicate"/>.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SingleOrDefault``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the only element of a parallel sequence, or a default value if the sequence is 
            empty; this method throws an exception if there is more than one element in the sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the single element of.</param>
            <returns>
            The single element of the input sequence, or default(<typeparamref name="TSource"/>) if the 
            sequence contains no elements.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.SingleOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the only element of a parallel sequence that satisfies a specified condition 
            or a default value if no such element exists; this method throws an exception 
            if more than one element satisfies the condition.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the single element of.</param>
            <param name="predicate">A function to test an element for a condition.</param>
            <returns>
            The single element of the input sequence that satisfies the condition, or 
            default(<typeparamref name="TSource"/>) if no such element is found.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.DefaultIfEmpty``1(System.Linq.ParallelQuery{``0})">
            <summary>
            Returns the elements of the specified parallel sequence or the type parameter's 
            default value in a singleton collection if the sequence is empty.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return a default value for if it is empty.</param>
            <returns>
            A sequence that contains default(<B>TSource</B>) if <paramref name="source"/> is empty; otherwise, <paramref name="source"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.DefaultIfEmpty``1(System.Linq.ParallelQuery{``0},``0)">
            <summary>
            Returns the elements of the specified parallel sequence or the specified value 
            in a singleton collection if the sequence is empty.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The sequence to return the specified value for if it is empty.</param>
            <param name="defaultValue">The value to return if the sequence is empty.</param>
            <returns>
            A sequence that contains <B>defaultValue</B> if <paramref name="source"/> is empty; otherwise, <paramref name="source"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ElementAt``1(System.Linq.ParallelQuery{``0},System.Int32)">
            <summary>
            Returns the element at a specified index in a parallel sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence to return an element from.</param>
            <param name="index">The zero-based index of the element to retrieve.</param>
            <returns>The element at the specified position in the source sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="index"/> is less than 0 or greater than or equal to the number of elements in <paramref name="source"/>.
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="M:System.Linq.ParallelEnumerable.ElementAtOrDefault``1(System.Linq.ParallelQuery{``0},System.Int32)">
            <summary>
            Returns the element at a specified index in a parallel sequence or a default value if the 
            index is out of range.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">A sequence to return an element from.</param>
            <param name="index">The zero-based index of the element to retrieve.</param>
            <returns>
            default(<B>TSource</B>) if the index is outside the bounds of the source sequence; 
            otherwise, the element at the specified position in the source sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
            </exception>
            <exception cref="T:System.AggregateException">
            One or more exceptions occurred during the evaluation of the query.
            </exception>
            <exception cref="T:System.OperationCanceledException">
            The query was canceled.
            </exception>
        </member>
        <member name="T:System.Linq.ParallelMergeOptions">
            <summary>
            Specifies the preferred type of output merge to use in a query. This is a hint only, and may not be
            respected by the system when parallelizing all queries.
            </summary>
            <remarks>
            <para>
            Use <b>NotBuffered</b> for queries that will be consumed and output as streams, this has the lowest latency
            between beginning query execution and elements being yielded. For some queries, such as those involving a 
            sort (OrderBy, OrderByDescending), buffering is essential and a hint of NotBuffered or AutoBuffered will 
            be ignored.
            </para>
            <para>
            Use <b>AutoBuffered</b> for most cases; this is the default.  It strikes a balance between latency and
            overall performance.
            </para>
            <para>
            Use <b>FullyBuffered</b> for queries when the entire output can be processed before the information is 
            needed. This option offers the best performance when all of the output can be accumulated before yielding
            any information, though it is not suitable for stream processing or showing partial results mid-query.
            </para>
            </remarks>
        </member>
        <member name="F:System.Linq.ParallelMergeOptions.Default">
            <summary>
            Use the default merge type, which is AutoBuffered.
            </summary>
        </member>
        <member name="F:System.Linq.ParallelMergeOptions.NotBuffered">
            <summary>
            Use a merge without output buffers. As soon as result elements have been computed, 
            make that element available to the consumer of the query.
            </summary>
        </member>
        <member name="F:System.Linq.ParallelMergeOptions.AutoBuffered">
            <summary>
            Use a merge with output buffers of a size chosen by the system. Results
            will accumulate into an output buffer before they are available to the consumer of
            the query.
            </summary>
        </member>
        <member name="F:System.Linq.ParallelMergeOptions.FullyBuffered">
            <summary>
            Use a merge with full output buffers. The system will accumulate all of the
            results before making any of them available to the consumer of the query.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.AsynchronousChannel`1">
            <summary>
            This is a bounded channel meant for single-producer/single-consumer scenarios. 
            </summary>
            <typeparam name="T">Specifies the type of data in the channel.</typeparam>
        </member>
        <member name="T:System.Linq.Parallel.SynchronousChannel`1">
             <summary>
             The simplest channel is one that has no synchronization.  This is used for stop-
             and-go productions where we are guaranteed the consumer is not running
             concurrently. It just wraps a FIFO queue internally.
            
             Assumptions:
                 Producers and consumers never try to enqueue/dequeue concurrently.
             </summary>
             <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.EmptyEnumerable`1">
            <summary>
            We occassionally need a no-op enumerator to stand-in when we don't have data left
            within a partition's data stream. These are simple enumerable and enumerator
            implementations that always and consistently yield no elements.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.ParallelQuery`1">
            <summary>
            Represents a parallel sequence.
            </summary>
        </member>
        <member name="T:System.Linq.ParallelQuery">
            <summary>
            Represents a parallel sequence.
            </summary>
        </member>
        <member name="M:System.Linq.ParallelQuery.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the sequence.
            </summary>
            <returns>An enumerator that iterates through the sequence.</returns>
        </member>
        <member name="M:System.Linq.ParallelQuery`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the sequence.
            </summary>
            <returns>An enumerator that iterates through the sequence.</returns>
        </member>
        <member name="T:System.Linq.Parallel.QueryOperatorEnumerator`2">
            <summary>
            A common enumerator type that unifies all query operator enumerators. 
            </summary>
            <typeparam name="TElement"></typeparam>
            <typeparam name="TKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.EnumerableWrapperWeakToStrong">
            <summary>
            A simple implementation of the IEnumerable{object} interface which wraps
            a weakly typed IEnumerable object, allowing it to be accessed as a strongly typed
            IEnumerable{object}.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.IParallelPartitionable`1">
             <summary>
             
             An interface that allows developers to specify their own partitioning routines.
            
             </summary>
             <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ParallelEnumerableWrapper">
            <summary>
            A simple implementation of the ParallelQuery{object} interface which wraps an
            underlying IEnumerable, such that it can be used in parallel queries.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.ParallelEnumerableWrapper`1">
            <summary>
            A simple implementation of the ParallelQuery{T} interface which wraps an
            underlying IEnumerable{T}, such that it can be used in parallel queries.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.QueryAggregationOptions">
            <summary>
            An enum to specify whether an aggregate operator is associative, commutative,
            neither, or both. This influences query analysis and execution: associative
            aggregations can run in parallel, whereas non-associative cannot; non-commutative
            aggregations must be run over data in input-order. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.RangeEnumerable">
            <summary>
            A simple enumerable type that implements the range algorithm. It also supports
            partitioning of the indices by implementing an interface that PLINQ recognizes.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.RepeatEnumerable`1">
            <summary>
            A simple enumerable type that implements the repeat algorithm. It also supports
            partitioning of the count space by implementing an interface that PLINQ recognizes.
            </summary>
            <typeparam name="TResult"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ArrayMergeHelper`1">
            <summary>
            A special merge helper for indexible queries. Given an indexible query, we know how many elements
            we'll have in the result set, so we can allocate the array ahead of time. Then, as each result element
            is produced, we can directly insert it into the appropriate position in the output array, paying
            no extra cost for ordering.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.IMergeHelper`1">
            <summary>
            Used as a stand-in for replaceable merge algorithms. Alternative implementations
            are chosen based on the style of merge required. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.#ctor(System.Linq.Parallel.QuerySettings,System.Linq.Parallel.QueryResults{`0})">
            <summary>
            Instantiates the array merge helper.
            </summary>
            <param name="settings">The query settings</param>
            <param name="queryResults">The query results</param>
        </member>
        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.ToArrayElement(System.Int32)">
            <summary>
            A method used as a delegate passed into the ForAll operator
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.Execute">
            <summary>
            Schedules execution of the merge itself.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.GetEnumerator">
            <summary>
            Gets the enumerator over the results.
            
            We never expect this method to be called. ArrayMergeHelper is intended to be used when we want
            to consume the results using GetResultsAsArray().
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.GetResultsAsArray">
            <summary>
            Returns the merged results as an array.
            </summary>
            <returns></returns>
        </member>
        <member name="T:System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1">
             <summary>
             An enumerator that merges multiple one-to-one channels into a single output
             stream, including any necessary blocking and synchronization. This is an
             asynchronous enumerator, i.e. the producers may be inserting items into the
             channels concurrently with the consumer taking items out of them. Therefore,
             enumerating this object can cause the current thread to block.
            
             We use a biased choice algorithm to choose from our consumer channels. I.e. we
             will prefer to process elements in a fair round-robin fashion, but will
             occassionally bypass this if a channel is empty.
            
             </summary>
             <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.MergeEnumerator`1">
            <summary>
            Convenience class used by enumerators that merge many partitions into one. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1.WaitAny(System.Threading.ManualResetEventSlim[])">
            <summary>
            WaitAny simulates a Win32-style WaitAny on the set of thin-events.
            </summary>
            <param name="events">An array of thin-events (null elements permitted)</param>
            <returns>The index of the specific event in events that caused us to wake up.</returns>
        </member>
        <member name="T:System.Linq.Parallel.DefaultMergeHelper`2">
            <summary>
            The default merge helper uses a set of straightforward algorithms for output
            merging. Namely, for synchronous merges, the input data is yielded from the
            input data streams in "depth first" left-to-right order. For asynchronous merges,
            on the other hand, we use a biased choice algorithm to favor input channels in
            a "fair" way. No order preservation is carried out by this helper. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TIgnoreKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.MergeExecutor`1">
            <summary>
            Drives execution of an actual merge operation, including creating channel data
            structures and scheduling parallel work as appropriate. The algorithms used
            internally are parameterized based on the type of data in the partitions; e.g.
            if an order preserved stream is found, the merge will automatically use an
            order preserving merge, and so forth. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingMergeHelper`2">
            <summary>
            The order preserving merge helper guarantees the output stream is in a specific order. This is done
            by comparing keys from a set of already-sorted input partitions, and coalescing output data using
            incremental key comparisons.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1">
            <summary>
            A merge helper that yields results in a streaming fashion, while still ensuring correct output
            ordering. This merge only works if each producer task generates outputs in the correct order,
            i.e. with an Increasing (or Correct) order index.
            
            The merge creates DOP producer tasks, each of which will be  writing results into a separate
            buffer.
            
            The consumer always waits until each producer buffer contains at least one element. If we don't
            have one element from each producer, we cannot yield the next element. (If the order index is 
            Correct, or in some special cases with the Increasing order, we could yield sooner. The
            current algorithm does not take advantage of this.)
            
            The consumer maintains a producer heap, and uses it to decide which producer should yield the next output
            result. After yielding an element from a particular producer, the consumer will take another element
            from the same producer. However, if the producer buffer exceeded a particular threshold, the consumer
            will take the entire buffer, and give the producer an empty buffer to fill.
            
            Finally, if the producer notices that its buffer has exceeded an even greater threshold, it will
            go to sleep and wait until the consumer takes the entire buffer.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.INITIAL_BUFFER_SIZE">
            <summary>
            The initial capacity of the buffer queue. The value was chosen experimentally.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.STEAL_BUFFER_SIZE">
            <summary>
            If the consumer notices that the queue reached this limit, it will take the entire buffer from
            the producer, instead of just popping off one result. The value was chosen experimentally.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.MAX_BUFFER_SIZE">
            <summary>
            If the producer notices that the queue reached this limit, it will go to sleep until woken up
            by the consumer. Chosen experimentally.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_autoBuffered">
            <summary>
            Whether the producer is allowed to buffer up elements before handing a chunk to the consumer.
            If false, the producer will make each result available to the consumer immediately after it is
            produced.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_buffers">
            <summary>
            Buffers for the results. Each buffer has elements added by one producer, and removed
            by the consumer.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_producerDone">
            <summary>
            Whether each producer is done producing. Set to true by individual producers, read by consumer.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_producerWaiting">
            <summary>
            Whether a particular producer is waiting on the consumer. Read by the consumer, set to true
            by producers, set to false by the consumer.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_consumerWaiting">
            <summary>
             Whether the consumer is waiting on a particular producer. Read by producers, set to true
             by consumer, set to false by producer.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_bufferLocks">
            <summary>
            Each object is a lock protecting the corresponding elements in m_buffers, m_producerDone, 
            m_producerWaiting and m_consumerWaiting.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.s_producerComparer">
            <summary>
            A singleton instance of the comparer used by the producer heap. Eager allocation is OK 
            because if the static constructor runs, we will be using this merge.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.Producer">
            <summary>
            A structure to represent a producer in the producer heap.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.ProducerComparer">
            <summary>
            A comparer used by FixedMaxHeap(Of Producer)
            
            This comparer will be used by max-heap. We want the producer with the smallest MaxKey to
            end up in the root of the heap.
            
                x.MaxKey GREATER_THAN y.MaxKey  =>  x LESS_THAN y     => return -
                x.MaxKey EQUALS y.MaxKey        =>  x EQUALS y        => return 0
                x.MaxKey LESS_THAN y.MaxKey     =>  x GREATER_THAN y  => return +
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator">
            <summary>
            Enumerator over the results of an order-preserving pipelining merge.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_mergeHelper">
            <summary>
            Merge helper associated with this enumerator
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_producerHeap">
            <summary>
            Heap used to efficiently locate the producer whose result should be consumed next.
            For each producer, stores the order index for the next element to be yielded.
            
            Read and written by the consumer only.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_producerNextElement">
            <summary>
            Stores the next element to be yielded from each producer. We use a separate array
            rather than storing this information in the producer heap to keep the Producer struct 
            small.
            
            Read and written by the consumer only.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_privateBuffer">
            <summary>
            A private buffer for the consumer. When the size of a producer buffer exceeds a threshold 
            (STEAL_BUFFER_SIZE), the consumer will take ownership of the entire buffer, and give the
            producer a new empty buffer to place results into.
            
            Read and written by the consumer only.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_initialized">
            <summary>
            Tracks whether MoveNext() has already been called previously.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.#ctor(System.Linq.Parallel.OrderPreservingPipeliningMergeHelper{`0})">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.MoveNext">
            <summary>
            Moves the enumerator to the next result, or returns false if there are no more results to yield.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.ThrowIfInTearDown">
            <summary>
            If the cancellation of the query has been initiated (because one or more producers
            encountered exceptions, or because external cancellation token has been set), the method 
            will tear down the query and rethrow the exception.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.TryWaitForElement(System.Int32,System.Linq.Parallel.Pair{System.Int32,`0}@)">
            <summary>
            Wait until a producer's buffer is non-empty, or until that producer is done.
            </summary>
            <returns>false if there is no element to yield because the producer is done, true otherwise</returns>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.TryGetPrivateElement(System.Int32,System.Linq.Parallel.Pair{System.Int32,`0}@)">
            <summary>
            Looks for an element from a particular producer in the consumer's private buffer.
            </summary>
        </member>
        <member name="P:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.Current">
            <summary>
            Returns the current result
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.SynchronousChannelMergeEnumerator`1">
            <summary>
            This enumerator merges multiple input channels into a single output stream. The merging process just
            goes from left-to-right, enumerating each channel in succession in its entirety.
            Assumptions:
                Before enumerating this object, all producers for all channels must have finished enqueueing new
                elements.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.HashRepartitionEnumerator`3">
            <summary>
            This enumerator handles the actual coordination among partitions required to
            accomplish the repartitioning operation, as explained above.
            </summary>
            <typeparam name="TInputOutput">The kind of elements.</typeparam>
            <typeparam name="THashKey">The key used to distribute elements.</typeparam>
            <typeparam name="TIgnoreKey">The kind of keys found in the source (ignored).</typeparam>
        </member>
        <member name="T:System.Linq.Parallel.HashRepartitionStream`3">
             <summary>
             A repartitioning stream must take input data that has already been partitioned and
             redistribute its contents based on a new partitioning algorithm. This is accomplished
             by making each partition p responsible for redistributing its input data to the
             correct destination partition. Some input elements may remain in p, but many will now
             belong to a different partition and will need to move. This requires a great deal of
             synchronization, but allows threads to repartition data incrementally and in parallel.
             Each partition will "pull" data on-demand instead of partitions "pushing" data, which
             allows us to reduce some amount of synchronization overhead.
            
             We currently only offer one form of reparitioning via hashing.  This used to be an
             abstract base class, but we have eliminated that to get rid of some virtual calls on
             hot code paths.  Uses a key selection algorithm with mod'ding to determine destination.
            
             @TODO: @BUG#519: consider adding a bound to the buffers. Unfortunately this can quite easily
                 lead to deadlock when multiple repartitions are involved. Need a solution.
             @TODO: @BUG#504: consider amortizing synchronization overhead by enqueueing/dequeueing in chunks
                 rather than single elements. Also need to be careful not to introduce deadlock.
             </summary>
             <typeparam name="TInputOutput"></typeparam>
             <typeparam name="THashKey"></typeparam>
             <typeparam name="TOrderKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PartitionedStream`2">
             <summary>
             A partitioned stream just partitions some data source using an extensible 
             partitioning algorithm and exposes a set of N enumerators that are consumed by
             their ordinal index [0..N). It is used to build up a set of streaming computations.
             At instantiation time, the actual data source to be partitioned is supplied; and
             then the caller will layer on top additional enumerators to represent phases in the
             computation. Eventually, a merge can then schedule enumeration of all of the
             individual partitions in parallel by obtaining references to the individual
             partition streams.
            
             This type has a set of subclasses which implement different partitioning algorithms,
             allowing us to easily plug in different partitioning techniques as needed. The type
             supports wrapping IEnumerables and IEnumerators alike, with some preference for the
             former as many partitioning algorithms are more intelligent for certain data types.
             </summary>
             <typeparam name="TElement"></typeparam>
             <typeparam name="TKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.IPartitionedStreamRecipient`1">
            <summary>
            IPartitionedStreamRecipient is essentially a generic action on a partitioned stream,
            whose generic type parameter is the type of the order keys in the partitioned stream.
            </summary>
            <typeparam name="TElement"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.OrderedHashRepartitionEnumerator`3">
            <summary>
            This enumerator handles the actual coordination among partitions required to
            accomplish the repartitioning operation, as explained above.  In addition to that,
            it tracks order keys so that order preservation can flow through the enumerator.
            </summary>
            <typeparam name="TInputOutput">The kind of elements.</typeparam>
            <typeparam name="THashKey">The key used to distribute elements.</typeparam>
            <typeparam name="TOrderKey">The kind of keys found in the source.</typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PartitionedDataSource`1">
             <summary>
             Contiguous range chunk partitioning attempts to improve data locality by keeping
             data close together in the incoming data stream together in the outgoing partitions.
             There are really three types of partitions that are used internally:
            
                 1. If the data source is indexable--like an array or List_T--we can actually
                    just compute the range indexes and avoid doing any copying whatsoever. Each
                    "partition" is just an enumerator that will walk some subset of the data.
                 2. If the data source has an index (different than being indexable!), we can
                    turn this into a range scan of the index. We can roughly estimate distribution
                    and ensure an evenly balanced set of partitions.
                    @TODO: @BUG#516: we don't have indexes today. We are considering it for the future.
                 3. If we can't use 1 or 2, we instead partition "on demand" by chunking the contents
                    of the source enumerator as they are requested. The unfortunate thing is that
                    this requires synchronization, since consumers may be running in parallel. We
                    amortize the cost of this by giving chunks of items when requested instead of
                    one element at a time. Note that this approach also works for infinite streams.
            
             In all cases, the caller can request that enumerators walk elements in striped
             contiguous chunks. If striping is requested, then each partition j will yield elements
             in the data source for which ((i / s)%p) == j, where i is the element's index, s is
             a chunk size calculated by the system with the intent of aligning on cache lines, and
             p is the number of partitions. If striping is not requested, we use the same algorith,
             only, instead of aligning on cache lines, we use a chunk size of l / p, where l
             is the length of the input and p is the number of partitions.
            
             Notes:
                 This is used as the default partitioning strategy by much of the PLINQ infrastructure.
             </summary>
             <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.AssociativeAggregationOperator`3">
             <summary>
             The aggregation operator is a little unique, in that the enumerators it returns
             yield intermediate results instead of the final results. That's because there is
             one last Aggregate operation that must occur in order to perform the final reduction
             over the intermediate streams. In other words, the intermediate enumerators produced
             by this operator are never seen by other query operators or consumers directly.
            
             An aggregation performs parallel prefixing internally. Given a binary operator O,
             it will generate intermediate results by folding O across partitions; then it
             performs a final reduction by folding O accross the intermediate results. The
             analysis engine knows about associativity and commutativity, and will ensure the
             style of partitioning inserted into the tree is compatable with the operator.
            
             For instance, say O is + (meaning it is AC), our input is {1,2,...,8}, and we
             use 4 partitions to calculate the aggregation. Sequentially this would look
             like this O(O(O(1,2),...),8), in other words ((1+2)+...)+8. The parallel prefix
             of this (w/ 4 partitions) instead calculates the intermediate aggregations, i.e.:
             t1 = O(1,2), t2 = O(3,4), ... t4 = O(7,8), aka t1 = 1+2, t2 = 3+4, t4 = 7+8.
             The final step is to aggregate O over these intermediaries, i.e.
             O(O(O(t1,t2),t3),t4), or ((t1+t2)+t3)+t4. This generalizes to any binary operator.
            
             Beause some aggregations use a different input, intermediate, and output types,
             we support an even more generalized aggregation type. In this model, we have
             three operators, an intermediate (used for the incremental aggregations), a
             final (used for the final summary of intermediate results), and a result selector
             (used to perform whatever transformation is needed on the final summary).
             </summary>
             <typeparam name="TInput"></typeparam>
             <typeparam name="TIntermediate"></typeparam>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.UnaryQueryOperator`2">
            <summary>
            The base class from which all binary query operators derive, that is, those that
            have two child operators. This introduces some convenience methods for those
            classes, as well as any state common to all subclasses.
            </summary>
            <typeparam name="TInput"></typeparam>
            <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.QueryOperator`1">
             <summary>
             This is the abstract base class for all query operators in the system. It
             implements the ParallelQuery{T} type so that it can be bound as the source
             of parallel queries and so that it can be returned as the result of parallel query
             operations. Not much is in here, although it does serve as the "entry point" for
             opening all query operators: it will lazily analyze and cache a plan the first
             time the tree is opened, and will open the tree upon calls to GetEnumerator.
            
             Notes:
                 This class implements ParallelQuery so that any parallel query operator
                 can bind to the parallel query provider overloads. This allows us to string
                 together operators w/out the user always specifying AsParallel, e.g.
                 Select(Where(..., ...), ...), and so forth. 
             </summary>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.QueryResults`1">
             <summary>
             The QueryResults{T} is a class representing the results of the query. There may
             be different ways the query results can be manipulated. Currently, two ways are
             supported:
            
             1. Open the query results as a partitioned stream by calling GivePartitionedStream
                and pass a generic action as an argument.
                
             2. Access individual elements of the results list by calling GetElement(index) and
                ElementsCount. This method of accessing the query results is available only if
                IsIndexible return true. 
             </summary>
             <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1">
            <summary>
            A QueryOperator that represents the output of the query partitioner.AsParallel().
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.PartitionerQueryOperator`1.GetOrdinalIndexState(System.Collections.Concurrent.Partitioner{`0})">
            <summary>
            Determines the OrdinalIndexState for a partitioner 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.PartitionerQueryOperatorResults">
            <summary>
            QueryResults for a PartitionerQueryOperator
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.OrderablePartitionerEnumerator">
            <summary>
            Enumerator that converts an enumerator over key-value pairs exposed by a partitioner
            to a QueryOperatorEnumerator used by PLINQ internally.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.PartitionerEnumerator">
            <summary>
            Enumerator that converts an enumerator over key-value pairs exposed by a partitioner
            to a QueryOperatorEnumerator used by PLINQ internally.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.ScanQueryOperator`1">
            <summary>
            A scan is just a simple operator that is positioned directly on top of some
            real data source. It's really just a place holder used during execution and
            analysis -- it should never actually get opened.
            </summary>
            <typeparam name="TElement"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ExceptQueryOperator`1">
            <summary>
            Operator that yields the elements from the first data source that aren't in the second.
            This is known as the set relative complement, i.e. left - right. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.BinaryQueryOperator`3">
            <summary>
            The base class from which all binary query operators derive, that is, those that
            have two child operators. This introduces some convenience methods for those
            classes, as well as any state common to all subclasses. 
            </summary>
            <typeparam name="TLeftInput"></typeparam>
            <typeparam name="TRightInput"></typeparam>
            <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.GroupJoinQueryOperator`4">
            <summary>
            A group join operator takes a left query tree and a right query tree, and then yields
            the matching elements between the two. This can be used for outer joins, i.e. those
            where an outer element has no matching inner elements -- the result is just an empty
            list. As with the join algorithm above, we currently use a hash join algorithm.
            </summary>
            <typeparam name="TLeftInput"></typeparam>
            <typeparam name="TRightInput"></typeparam>
            <typeparam name="TKey"></typeparam>
            <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.HashJoinQueryOperatorEnumerator`5">
             <summary>
             This enumerator implements the hash-join algorithm as noted earlier.
            
             Assumptions:
                 This enumerator type won't work properly at all if the analysis engine didn't
                 ensure a proper hash-partition. We expect inner and outer elements with equal
                 keys are ALWAYS in the same partition. If they aren't (e.g. if the analysis is
                 busted) we'll silently drop items on the floor. :( 
                 
                 
              This is the enumerator class for two operators:
               - Join
               - GroupJoin
             </summary>
             <typeparam name="TLeftInput"></typeparam>
             <typeparam name="TLeftKey"></typeparam>
             <typeparam name="TRightInput"></typeparam>
             <typeparam name="THashKey"></typeparam>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.IntersectQueryOperator`1">
            <summary>
            Operator that yields the intersection of two data sources. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.JoinQueryOperator`4">
             <summary>
             A join operator takes a left query tree and a right query tree, and then yields the
             matching pairs between the two. LINQ supports equi-key-based joins. Hence, a key-
             selection function for the left and right data types will yield keys of the same
             type for both. We then merely have to match elements from the left with elements from
             the right that have the same exact key. Note that this is an inner join. In other
             words, outer elements with no matching inner elements do not appear in the output.
            
             @TODO: @BUG#528: Currently we implement only a hash-join algorithm. Furthermore, we always
                 choose the inner data source for the hash-table creation. There is room for
                 optimization and different algorithm choices eventually.
            
             Hash-joins work in two phases:
            
                (1) Building - we build a hash-table from one of the data sources. In the case
                        of this specific operator, the table is built from the hash-codes of
                        keys selected via the key selector function. Because elements may share
                        the same key, the table must support one-key-to-many-values.
                (2) Probing - for each element in the data source not used for building, we
                        use its key to look into the hash-table. If we find elements under this
                        key, we just enumerate all of them, yielding them as join matches.
            
             Because hash-tables exhibit on average O(1) lookup, we turn what would have been
             an O(n*m) algorithm -- in the case of nested loops joins -- into an O(n) algorithm.
             We of course require some additional storage to do so, but in general this pays.
             </summary>
             <typeparam name="TLeftInput"></typeparam>
             <typeparam name="TRightInput"></typeparam>
             <typeparam name="TKey"></typeparam>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.UnionQueryOperator`1">
            <summary>
            Operator that yields the union of two data sources. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ZipQueryOperator`3">
            <summary>
            A Zip operator combines two input data sources into a single output stream,
            using a pairwise element matching algorithm. For example, the result of zipping
            two vectors a = {0, 1, 2, 3} and b = {9, 8, 7, 6} is the vector of pairs,
            c = {(0,9), (1,8), (2,7), (3,6)}. Because the expectation is that each element
            is matched with the element in the other data source at the same ordinal
            position, the zip operator requires order preservation. 
            </summary>
            <typeparam name="TLeftInput"></typeparam>
            <typeparam name="TRightInput"></typeparam>
            <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PartitionedStreamMerger`1">
            <summary>
            Partitioned stream recipient that will merge the results. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.QueryOpeningEnumerator`1">
            <summary>
            A wrapper enumerator that just opens the query operator when MoveNext() is called for the
            first time. We use QueryOpeningEnumerator to call QueryOperator.GetOpenedEnumerator()
            lazily because once GetOpenedEnumerator() is called, PLINQ starts precomputing the
            results of the query.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery">
            <summary>
            Opens the query and initializes m_openedQueryEnumerator and m_querySettings.
            Called from the first MoveNext call.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.CountAggregationOperator`1">
            <summary>
            An inlined count aggregation and its enumerator. 
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.InlinedAggregationOperator`3">
            <summary>
            This class is common to all of the "inlined" versions of various aggregations.  The
            inlined operators ensure that real MSIL instructions are used to perform elementary
            operations versus general purpose delegate-based binary operators.  For obvious reasons
            this is a quite bit more efficient, although it does lead to a fair bit of unfortunate
            code duplication. 
            </summary>
            <typeparam name="TSource"></typeparam>
            <typeparam name="TIntermediate"></typeparam>
            <typeparam name="TResult"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.InlinedAggregationOperatorEnumerator`1">
            <summary>
            A class with some shared implementation between all aggregation enumerators. 
            </summary>
            <typeparam name="TIntermediate"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.DecimalAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for decimals. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.DecimalMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for decimals.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.DecimalSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for decimals. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.DoubleAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for doubles.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.DoubleMinMaxAggregationOperator">
             <summary>
             An inlined min/max aggregation and its enumerator, for doubles.
            
             Notes:
                 Note that normally double.NaN &lt; anything is false, as is anything &lt; NaN.  This would
                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
                 everything, including -infinity, which is consistent with Comparer_T. 
             </summary>
        </member>
        <member name="T:System.Linq.Parallel.DoubleSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for doubles. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.FloatAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for floats. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.FloatMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for floats.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.FloatSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for floats. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.IntAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for ints. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.IntMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for ints. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.IntSumAggregationOperator">
            <summary>
            Inlined aggregations for summing up primitives (int, long, float, double, decimal), as
            well as the nullable versions of each (int?, long?, float?, double?, decimal?). 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.LongAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for longs. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.LongCountAggregationOperator`1">
            <summary>
            An inlined count aggregation and its enumerator. 
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.LongMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for longs. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.LongSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for longs. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDecimalAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for Nullable decimals.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for Nullable decimals. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDecimalSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for nullable decimals. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDoubleAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for Nullable doubles.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator">
             <summary>
             An inlined min/max aggregation and its enumerator, for Nullable{Double}s.
            
             Notes:
                 Note that normally double.NaN &lt; anything is false, as is anything &lt; NaN.  This would
                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
                 everything, including -infinity, which is consistent with Comparer_T. 
             </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableDoubleSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for nullable doubles. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableFloatAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for Nullable floats.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableFloatMinMaxAggregationOperator">
             <summary>
             An inlined min/max aggregation and its enumerator, for Nullable floats.
            
             Notes:
                 Note that normally float.NaN &lt; anything is false, as is anything &lt; NaN.  This would
                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
                 everything, including -infinity, which is consistent with Comparer_T.
             </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableFloatSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for Nullable floats. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableIntAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for Nullable ints. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableIntMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for Nullable ints. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableIntSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for Nullable ints. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableLongAverageAggregationOperator">
            <summary>
            An inlined average aggregation operator and its enumerator, for Nullable longs. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableLongMinMaxAggregationOperator">
            <summary>
            An inlined min/max aggregation and its enumerator, for Nullable{Int64}s. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NullableLongSumAggregationOperator">
            <summary>
            An inlined sum aggregation and its enumerator, for Nullable longs. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.ListQueryResults`1">
            <summary>
            Class to represent an IList{T} as QueryResults{T} 
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.OrdinalIndexState">
            <summary>
            Describes the state of order preservation index associated with an enumerator. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.QuerySettings">
            <summary>
            This type contains query execution options specified by the user.
            QuerySettings are used as follows:
            - in the query construction phase, some settings may be uninitialized.
            - at the start of the query opening phase, the WithDefaults method
              is used to initialize all uninitialized settings.
            - in the rest of the query opening phase, we assume that all settings
              have been initialized.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.OrderingQueryOperator`1">
            <summary>
            Represents operators AsOrdered and AsUnordered. In the current implementation, it
            simply turns on preservation globally in the query. 
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.QueryExecutionOption`1">
            <summary>
            Represents operators that set various query execution options. 
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.AnyAllSearchOperator`1">
             <summary>
             The any/all operators work the same way. They search for the occurrence of a predicate
             value in the data source, and upon the first occurrence of such a value, yield a
             particular value. Specifically:
            
                 - Any returns true if the predicate for any element evaluates to true.
                 - All returns false if the predicate for any element evaluates to false.
            
             This uniformity is used to apply a general purpose algorithm. Both sentences above
             take the form of "returns XXX if the predicate for any element evaluates to XXX."
             Therefore, we just parameterize on XXX, called the qualifciation below, and if we
             ever find an occurrence of XXX in the input data source, we also return XXX. Otherwise,
             we return !XXX. Obviously, XXX in this case is a bool.
            
             This is a search algorithm. So once any single partition finds an element, it will
             return so that execution can stop. This is done with a "cancelation" flag that is
             polled by all parallel workers. The first worker to find an answer sets it, and all
             other workers notice it and quit as quickly as possible.
             </summary>
             <typeparam name="TInput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ConcatQueryOperator`1">
            <summary>
            Concatenates one data source with another.  Order preservation is used to ensure
            the output is actually a concatenation -- i.e. one after the other.  The only
            special synchronization required is to find the largest index N in the first data
            source so that the indices of elements in the second data source can be offset
            by adding N+1.  This makes it appear to the order preservation infrastructure as
            though all elements in the second came after all elements in the first, which is
            precisely what we want.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ContainsSearchOperator`1">
            <summary>
            Contains is quite similar to the any/all operator above. Each partition searches a
            subset of elements for a match, and the first one to find a match signals to the rest
            of the partititons to stop searching.
            </summary>
            <typeparam name="TInput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.DefaultIfEmptyQueryOperator`1">
            <summary>
            This operator just exposes elements directly from the underlying data source, if
            it's not empty, or yields a single default element if the data source is empty.
            There is a minimal amount of synchronization at the beginning, until all partitions
            have registered whether their stream is empty or not. Once the 0th partition knows
            that at least one other partition is non-empty, it may proceed. Otherwise, it is
            the 0th partition which yields the default value.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.DistinctQueryOperator`1">
            <summary>
            This operator yields all of the distinct elements in a single data set. It works quite
            like the above set operations, with the obvious difference being that it only accepts
            a single data source as input. 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ElementAtQueryOperator`1">
            <summary>
            ElementAt just retrieves an element at a specific index.  There is some cross-partition
            coordination to force partitions to stop looking once a partition has found the
            sought-after element.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.ElementAtQueryOperator`1.Aggregate(`0@,System.Boolean)">
            <summary>
            Executes the query, either sequentially or in parallel, depending on the query execution mode and
            whether a premature merge was inserted by this ElementAt operator.
            </summary>
            <param name="result">result</param>
            <param name="withDefaultValue">withDefaultValue</param>
            <returns>whether an element with this index exists</returns>
        </member>
        <member name="T:System.Linq.Parallel.FirstQueryOperator`1">
            <summary>
            First tries to discover the first element in the source, optionally matching a
            predicate.  All partitions search in parallel, publish the lowest index for a
            candidate match, and reach a barrier.  Only the partition that "wins" the race,
            i.e. who found the candidate with the smallest index, will yield an element.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ForAllOperator`1">
            <summary>
            A forall operator just enables an action to be placed at the "top" of a query tree
            instead of yielding an enumerator that some consumer can walk. We execute the
            query for effect instead of yielding a data result. 
            </summary>
            <typeparam name="TInput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.GroupByQueryOperator`3">
            <summary>
            The operator type for GroupBy statements. This operator groups the input based on
            a key-selection routine, yielding one-to-many values of key-to-elements. The
            implementation is very much like the hash join operator, in which we first build
            a big hashtable of the input; then we just iterate over each unique key in the
            hashtable, yielding it plus all of the elements with the same key.
            </summary>
            <typeparam name="TSource"></typeparam>
            <typeparam name="TGroupKey"></typeparam>
            <typeparam name="TElement"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.OrderedGroupByGrouping`3">
            <summary>
            An ordered version of the grouping data structure. Represents an ordered group of elements that
            have the same grouping key.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.#ctor(`0,System.Collections.Generic.IComparer{`1})">
            <summary>
            Constructs a new grouping
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.Add(`2,`1)">
            <summary>
            Add an element
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.DoneAdding">
            <summary>
            No more elements will be added, so we can sort the group now.
            </summary>
        </member>
        <member name="P:System.Linq.Parallel.OrderedGroupByGrouping`3.System#Linq#IGrouping{TGroupKey@TElement}#Key">
            <summary>
            The key this grouping represents.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.IndexedSelectQueryOperator`2">
             <summary>
             A variant of the Select operator that supplies element index while performing the
             projection operation. This requires cooperation with partitioning and merging to
             guarantee ordering is preserved.
            
             @TODO: @PERF: @BUG#527: as an optimization, we strictly don't need order to be preserved
                  all the way until the merge. If ordering is only kept for THIS operator, we
                  can subsequently get rid of order preservation after executing. 
             </summary>
             <typeparam name="TInput"></typeparam>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.IndexedWhereQueryOperator`1">
             <summary>
             A variant of the Where operator that supplies element index while performing the
             filtering operation. This requires cooperation with partitioning and merging to
             guarantee ordering is preserved.
            
             @TODO: @PERF: @BUG#527: as an optimization, we strictly don't need order to be preserved
                  all the way until the merge. If ordering is only kept for THIS operator, we
                  can subsequently get rid of order preservation after executing. 
             </summary>
             <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.LastQueryOperator`1">
             <summary>
             Last tries to discover the last element in the source, optionally matching a
             predicate.  All partitions search in parallel, publish the greatest index for a
             candidate match, and reach a barrier.  Only the partition that "wins" the race,
             i.e. who found the candidate with the largest index, will yield an element.
            
             @TODO: @PERF: @BUG#414: this traverses the data source in forward-order.  In the future, we
                 will want to traverse in reverse order, since this allows partitions to stop
                 the search sooner (by watching if the current index passes below the current best).
            
             </summary>
             <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ReverseQueryOperator`1">
            <summary>
            Reverse imposes ordinal order preservation. There are normally two phases to this
            operator's execution.  Each partition first builds a buffer containing all of its
            elements, and then proceeds to yielding the elements in reverse.  There is a
            'barrier' (but not a blocking barrier) in between these two steps, at which point the largest index becomes
            known.  This is necessary so that when elements from the buffer are yielded, the
            CurrentIndex can be reported as the largest index minus the original index (thereby
            reversing the indices as well as the elements themselves).  If the largest index is
            known a priori, because we have an array for example, we can avoid the barrier in
            between the steps.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.SelectManyQueryOperator`3">
             <summary>
             SelectMany is effectively a nested loops join. It is given two data sources, an
             outer and an inner -- actually, the inner is sometimes calculated by invoking a
             function for each outer element -- and we walk the outer, walking the entire
             inner enumerator for each outer element. There is an optional result selector
             function which can transform the output before yielding it as a result element.
            
             Notes:
                 Although select many takes two enumerable objects as input, it appears to the
                 query analysis infrastructure as a unary operator. That's because it works a
                 little differently than the other binary operators: it has to re-open the right
                 child every time an outer element is walked. The right child is NOT partitioned. 
             </summary>
             <typeparam name="TLeftInput"></typeparam>
             <typeparam name="TRightInput"></typeparam>
             <typeparam name="TOutput"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamNotIndexed``1(System.Linq.Parallel.PartitionedStream{`0,``0},System.Linq.Parallel.IPartitionedStreamRecipient{`2},System.Linq.Parallel.QuerySettings)">
            <summary>
            A helper method for WrapPartitionedStream. We use the helper to reuse a block of code twice, but with
            a different order key type. (If premature merge occured, the order key type will be "int". Otherwise, 
            it will be the same type as "TLeftKey" in WrapPartitionedStream.)
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamIndexed(System.Linq.Parallel.PartitionedStream{`0,System.Int32},System.Linq.Parallel.IPartitionedStreamRecipient{`2},System.Linq.Parallel.QuerySettings)">
            <summary>
            Similar helper method to WrapPartitionedStreamNotIndexed, except that this one is for the indexed variant
            of SelectMany (i.e., the SelectMany that passes indices into the user sequence-generating delegate)
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.SelectQueryOperator`2">
            <summary>
            The operator type for Select statements. This operator transforms elements as it
            enumerates them through the use of a selector delegate. 
            </summary>
            <typeparam name="TInput"></typeparam>
            <typeparam name="TOutput"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.SingleQueryOperator`1">
            <summary>
            Single searches the input to find the sole element that satisfies the (optional)
            predicate.  If multiple such elements are found, the caller is responsible for
            producing an error.  There is some degree of cross-partition synchronization to
            proactively hault the search if we ever determine there are multiple elements
            satisfying the search in the input.
            </summary>
            <typeparam name="TSource"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.SortQueryOperator`2">
            <summary>
            The query operator for OrderBy and ThenBy.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TSortKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.TakeOrSkipQueryOperator`1">
            <summary>
            Take and Skip either take or skip a specified number of elements, captured in the
            count argument.  These will work a little bit like TakeWhile and SkipWhile: there
            are two phases, (1) Search and (2) Yield.  In the search phase, our goal is to
            find the 'count'th index from the input.  We do this in parallel by sharing a count-
            sized array.  Each thread races to populate the array with indices in ascending
            order.  This requires synchronization for inserts.  We use a simple heap, for decent
            worst case performance.  After a thread has scanned ‘count’ elements, or its current
            index is greater than or equal to the maximum index in the array (and the array is
            fully populated), the thread can stop searching.  All threads issue a barrier before
            moving to the Yield phase.  When the Yield phase is entered, the count-1th element
            of the array contains: in the case of Take, the maximum index (exclusive) to be
            returned; or in the case of Skip, the minimum index (inclusive) to be returned.  The
            Yield phase simply consists of yielding these elements as output.
            </summary>
            <typeparam name="TResult"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.TakeOrSkipQueryOperator`1.OutputOrdinalIndexState">
            <summary>
            Determines the order index state for the output operator
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1">
             <summary>
             Take- and SkipWhile work similarly. Execution is broken into two phases: Search
             and Yield.
            
             During the Search phase, many partitions at once search for the first occurrence
             of a false element.  As they search, any time a partition finds a false element
             whose index is lesser than the current lowest-known false element, the new index
             will be published, so other partitions can stop the search.  The search stops
             as soon as (1) a partition exhausts its input, (2) the predicate yields false for
             one of the partition's elements, or (3) its input index passes the current lowest-
             known index (sufficient since a given partition's indices are always strictly
             incrementing -- asserted below).  Elements are buffered during this process.
            
             Partitions use a barrier after Search and before moving on to Yield.  Once all
             have passed the barrier, Yielding begins.  At this point, the lowest-known false
             index will be accurate for the entire set, since all partitions have finished
             scanning.  This is where TakeWhile and SkipWhile differ.  TakeWhile will start at
             the beginning of its buffer and yield all elements whose indices are less than
             the lowest-known false index.  SkipWhile, on the other hand, will skipp any such
             elements in the buffer, yielding those whose index is greater than or equal to
             the lowest-known false index, and then finish yielding any remaining elements in
             its data source (since it may have stopped prematurely due to (3) above).
             </summary>
             <typeparam name="TResult"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1.OutputOrderIndexState">
            <summary>
            Determines the order index state for the output operator
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.WhereQueryOperator`1">
            <summary>
            The operator type for Where statements. This operator filters out elements that
            don't match a filter function (supplied at instantiation time). 
            </summary>
            <typeparam name="TInputOutput"></typeparam>
        </member>
        <member name="F:System.Linq.Parallel.CancellationState.POLL_INTERVAL">
            <summary>
            Poll frequency (number of loops per cancellation check) for situations where per-1-loop testing is too high an overhead. 
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.CancellationState.ThrowIfCanceled(System.Threading.CancellationToken)">
            <summary>
            Throws an OCE if the merged token has been canceled.
            </summary>
            <param name="token">A token to check for cancelation.</param>
        </member>
        <member name="T:System.Linq.Parallel.SpoolingTaskBase">
            <summary>
            A spooling task handles marshaling data from a producer to a consumer. It simply
            takes data from a producer and hands it off to a consumer. This class is the base
            class from which other concrete spooling tasks derive, encapsulating some common
            logic (such as capturing exceptions).
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.QueryTask">
            <summary>
            Simple abstract task representation, allowing either synchronous and asynchronous
            execution. Subclasses override the Work API to implement the logic.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.PRODUCER_BUFFER_AUTO_SIZE">
            <summary>
            The number of elements to accumulate on the producer before copying the elements to the 
            producer-consumer buffer. This constant is only used in the AutoBuffered mode.
            
            Experimentally, 16 appears to be sufficient buffer size to compensate for the synchronization
            cost.
            </summary>
        </member>
        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.m_autoBuffered">
            <summary>
            Whether the producer is allowed to buffer up elements before handing a chunk to the consumer.
            If false, the producer will make each result available to the consumer immediately after it is
            produced.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.#ctor(System.Linq.Parallel.QueryOperatorEnumerator{`0,System.Int32},System.Linq.Parallel.QueryTaskGroupState,System.Boolean[],System.Boolean[],System.Boolean[],System.Int32,System.Collections.Generic.Queue{System.Linq.Parallel.Pair{System.Int32,`0}}[],System.Object,System.Threading.Tasks.TaskScheduler,System.Boolean)">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.SpoolingWork">
            <summary>
            This method is responsible for enumerating results and enqueueing them to
            the output buffer as appropriate.  Each base class implements its own.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.Spool(System.Linq.Parallel.QueryTaskGroupState,System.Linq.Parallel.PartitionedStream{`0,System.Int32},System.Boolean[],System.Boolean[],System.Boolean[],System.Collections.Generic.Queue{System.Linq.Parallel.Pair{System.Int32,`0}}[],System.Object[],System.Threading.Tasks.TaskScheduler,System.Boolean)">
            <summary>
            Creates and begins execution of a new set of spooling tasks.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.SpoolingFinally">
            <summary>
            Dispose the underlying enumerator and wake up the consumer if necessary.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.OrderPreservingSpoolingTask`2">
            <summary>
            A spooling task handles marshaling data from a producer to a consumer. It's given
            a single enumerator object that contains all of the production algorithms, a single
            destination channel from which consumers draw results, and (optionally) a
            synchronization primitive using which to notify asynchronous consumers. This
            particular task variant preserves sort order in the final data.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.QueryTaskGroupState">
            <summary>
            A collection of tasks used by a single query instance. This type also offers some
            convenient methods for tracing significant ETW events, waiting on tasks, propagating
            exceptions, and performing cancellation activities.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.SpoolingTask">
            <summary>
            A factory class to execute spooling logic.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.StopAndGoSpoolingTask`2">
            <summary>
            A spooling task handles marshaling data from a producer to a consumer. It's given
            a single enumerator object that contains all of the production algorithms, a single
            destination channel from which consumers draw results, and (optionally) a
            synchronization primitive using which to notify asynchronous consumers.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TIgnoreKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PipelineSpoolingTask`2">
            <summary>
            A spooling task handles marshaling data from a producer to a consumer. It's given
            a single enumerator object that contains all of the production algorithms, a single
            destination channel from which consumers draw results, and (optionally) a
            synchronization primitive using which to notify asynchronous consumers.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TIgnoreKey"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ForAllSpoolingTask`2">
            <summary>
            A spooling task handles marshaling data from a producer to a consumer. It's given
            a single enumerator object that contains all of the production algorithms, a single
            destination channel from which consumers draw results, and (optionally) a
            synchronization primitive using which to notify asynchronous consumers.
            </summary>
            <typeparam name="TInputOutput"></typeparam>
            <typeparam name="TIgnoreKey"></typeparam>
        </member>
        <member name="M:System.Linq.Parallel.CancellableEnumerable.Wrap``1(System.Collections.Generic.IEnumerable{``0},System.Threading.CancellationToken)">
            <summary>
            Wraps an enumerable with a cancellation checker. The enumerator handed out by the source enumerable
            will be wrapped by an object that periodically checks whether a particular cancellation token has
            been cancelled. If so, the next call to MoveNext() will throw an OperationCancelledException.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapEnumerable``1(System.Collections.Generic.IEnumerable{``0},System.Linq.Parallel.CancellationState)">
            <summary>
            WrapEnumerable.ExceptionAggregator wraps the enumerable with another enumerator that will
            catch exceptions, and wrap each with an AggregateException.
            
            If PLINQ decides to execute a query sequentially, we will reuse LINQ-to-objects
            implementations for the different operators. However, we still need to throw
            AggregateException in the cases when parallel execution would have thrown an
            AggregateException. Thus, we introduce a wrapper enumerator that catches exceptions
            and wraps them with an AggregateException.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapQueryEnumerator``2(System.Linq.Parallel.QueryOperatorEnumerator{``0,``1},System.Linq.Parallel.CancellationState)">
            <summary>
            A variant of WrapEnumerable that accepts a QueryOperatorEnumerator{,} instead of an IEnumerable{}.
            The code duplication is necessary to avoid extra virtual method calls that would otherwise be needed to
            convert the QueryOperatorEnumerator{,} to an IEnumerator{}.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ExceptionAggregator.ThrowOCEorAggregateException(System.Exception,System.Linq.Parallel.CancellationState)">
            <summary>
            Accepts an exception, wraps it as if it was crossing the parallel->sequential boundary, and throws the
            wrapped exception. In sequential fallback cases, we use this method to throw exceptions that are consistent
            with exceptions thrown by PLINQ when the query is executed by worker tasks.
            
            The exception will be wrapped into an AggregateException, except for the case when the query is being
            legitimately cancelled, in which case we will propagate the CancellationException with the appropriate
            token.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapFunc``2(System.Func{``0,``1},System.Linq.Parallel.CancellationState)">
            <summary>
            Wraps a function with a try/catch that morphs all exceptions into AggregateException.
            </summary>
            <typeparam name="T">The input argument type.</typeparam>
            <typeparam name="U">The return value type.</typeparam>
            <param name="f">A function to use internally.</param>
            <param name="cancellationState">The cancellation state to use.</param>
            <returns>A new function containing exception wrapping logic.</returns>
        </member>
        <member name="T:System.Linq.Parallel.ExchangeUtilities">
            <summary>
            ExchangeUtilities is a static class that contains helper functions to partition and merge
            streams. 
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.NoKeyMemoizationRequired">
            <summary>
            Used during hash partitioning, when the keys being memoized are not used for anything.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.FixedMaxHeap`1">
            <summary>
            Very simple heap data structure, of fixed size.
            </summary>
            <typeparam name="TElement"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.GrowingArray`1">
            <summary>
            A growing array. Unlike List{T}, it makes the internal array available to its user.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.HashLookup`2">
            <summary>
            A simple hash map data structure, derived from the LINQ set we also use.
            </summary>
            <typeparam name="TKey">The kind of keys contained within.</typeparam>
            <typeparam name="TValue">The kind of values contained within.</typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ListChunk`1">
            <summary>
            A linked list of array chunks. Allows direct access to its arrays.
            </summary>
            <typeparam name="TInputOutput">The elements held within.</typeparam>
        </member>
        <member name="M:System.Linq.Parallel.ListChunk`1.#ctor(System.Int32)">
            <summary>
            Allocates a new root chunk of a particular size.
            </summary>
        </member>
        <member name="M:System.Linq.Parallel.ListChunk`1.Add(`0)">
            <summary>
            Adds an element to this chunk.  Only ever called on the root.
            </summary>
            <param name="e">The new element.</param>
        </member>
        <member name="M:System.Linq.Parallel.ListChunk`1.GetEnumerator">
            <summary>
            Fetches an enumerator to walk the elements in all chunks rooted from this one.
            </summary>
        </member>
        <member name="P:System.Linq.Parallel.ListChunk`1.Next">
            <summary>
            The next chunk in the linked chain.
            </summary>
        </member>
        <member name="P:System.Linq.Parallel.ListChunk`1.Count">
            <summary>
            The number of elements contained within this particular chunk.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.Lookup`2">
             <summary>
             Lookup class implements the ILookup interface. Lookup is very similar to a dictionary
             except multiple values are allowed to map to the same key, and null keys are supported.
            
             Support for null keys adds an issue because the Dictionary class Lookup uses for
             storage does not support null keys. So, we need to treat null keys separately.
             Unfortunately, since TKey may be a value type, we cannot test whether the key is null
             using the user-specified equality comparer.
            
             C# does allow us to compare the key against null using the == operator, but there is a
             possibility that the user's equality comparer considers null to be equal to other values.
             Now, MSDN documentation specifies that if IEqualityComparer.Equals(x,y) returns true, it
             must be the case that x and y have the same hash code, and null has no hash code. Despite
             that, we might as well support the use case, even if it is bad practice.
            
             The solution the Lookup class uses is to treat the key default(TKey) as a special case,
             and hold its associated grouping - if any - in a special field instead of inserting it
             into a dictionary.
             </summary>
             <typeparam name="TKey"></typeparam>
             <typeparam name="TElement"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.Pair`2">
            <summary>
            A pair just wraps two bits of data into a single addressable unit. This is a
            value type to ensure it remains very lightweight, since it is frequently used
            with other primitive data types as well.
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="U"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.PairComparer`2">
            <summary>
            PairComparer compares pairs by the first element, and breaks ties by the second
            element.
            </summary>
            <typeparam name="T"></typeparam>
            <typeparam name="U"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.ReverseComparer`1">
            <summary>
            Comparer that wraps another comparer, and flips the result of each comparison to the
            opposite answer.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.Set`1">
            <summary>
            A set for various operations. Shamelessly stolen from LINQ's source code.
            @TODO: can the Linq one be used directly now that we are in System.Core
            </summary>
            <typeparam name="TElement">The kind of elements contained within.</typeparam>
        </member>
        <member name="T:System.Linq.Parallel.Shared`1">
            <summary>
            A very simple primitive that allows us to share a value across multiple threads.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.Util">
            <summary>
            Common miscellaneous utility methods used throughout the code-base.
            </summary>
        </member>
        <member name="T:System.Linq.Parallel.Wrapper`1">
            <summary>
            A struct to wrap any arbitrary object reference or struct.  Used for situations
            where we can't tolerate null values (like keys for hashtables).
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.Parallel.WrapperEqualityComparer`1">
            <summary>
            Compares two wrapped structs of the same underlying type for equality.  Simply
            wraps the actual comparer for the type being wrapped.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:System.Linq.OrderedParallelQuery`1">
            <summary>
            Represents a sorted, parallel sequence.
            </summary>
        </member>
        <member name="M:System.Linq.OrderedParallelQuery`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the sequence.
            </summary>
            <returns>An enumerator that iterates through the sequence.</returns>
        </member>
        <member name="T:System.Linq.ParallelExecutionMode">
            <summary>
            The query execution mode is a hint that specifies how the system should handle
            performance trade-offs when parallelizing queries.
            </summary>
        </member>
        <member name="F:System.Linq.ParallelExecutionMode.Default">
            <summary>
            By default, the system will use algorithms for queries
            that are ripe for parallelism and will avoid algorithms with high 
            overheads that will likely result in slow downs for parallel execution. 
            </summary>
        </member>
        <member name="F:System.Linq.ParallelExecutionMode.ForceParallelism">
            <summary>
            Parallelize the entire query, even if that means using high-overhead algorithms.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.TaskExtensions">
            <summary>
            Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of 
            <see cref="T:System.Threading.Tasks.Task"/> instances.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.TaskExtensions.Unwrap(System.Threading.Tasks.Task{System.Threading.Tasks.Task})">
            <summary>
            Creates a proxy <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the 
            asynchronous operation of a Task{Task}.
            </summary>
            <remarks>
            It is often useful to be able to return a Task from a <see cref="T:System.Threading.Tasks.Task`1">
            Task{TResult}</see>, where the inner Task represents work done as part of the outer Task{TResult}.  However, 
            doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior.  Unwrap 
            solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}.
            </remarks>
            <param name="task">The Task{Task} to unwrap.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown if the 
            <paramref name="task"/> argument is null.</exception>
            <returns>A Task that represents the asynchronous operation of the provided Task{Task}.</returns>
        </member>
        <member name="M:System.Threading.Tasks.TaskExtensions.Unwrap``1(System.Threading.Tasks.Task{System.Threading.Tasks.Task{``0}})">
            <summary>
            Creates a proxy <see cref="T:System.Threading.Tasks.Task`1">Task{TResult}</see> that represents the 
            asynchronous operation of a Task{Task{TResult}}.
            </summary>
            <remarks>
            It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} 
            represents work done as part of the outer Task{TResult}.  However, doing so results in a Task{Task{TResult}}, 
            which, if not dealt with carefully, could produce unexpected behavior.  Unwrap solves this problem by 
            creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}.
            </remarks>
            <param name="task">The Task{Task{TResult}} to unwrap.</param>
            <exception cref="T:System.ArgumentNullException">The exception that is thrown if the 
            <paramref name="task"/> argument is null.</exception>
            <returns>A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}.</returns>        /// <summary>Unwraps a Task that returns another Task.</summary>
        </member>
    </members>
</doc>
